Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの起動とデータベースへの接続 » データベース・サーバの実行 » 一般的なオプション

 

SQL Anywhere でのスレッド

SQL Anywhere のスレッド・モデルを理解するには、スレッドと要求処理の基本用語と概念も理解することが必要です。

  • 要求   「要求」は、クエリや SQL 文などの作業単位で、接続を介してサーバに送信されます。要求の存続期間は、要求がデータベースによって最初に受信されてから、結果の最後が返されてカーソルが閉じられるまで、または要求がキャンセルされるまでの間を指します。

  • タスク   「タスク」は、データベース・サーバ内で実行されるアクティビティの単位です。また、サーバによってスケジュールされる最小の作業単位でもあります。ユーザ要求は、それぞれ、データベース・サーバ内で少なくとも 1 つのタスクになります。クエリ内並列処理が関連する場合は、複数のタスクになることもあります。データベース・サーバは、ユーザ要求だけでなく、内部的な管理処理を行うために自身のタスクをスケジュールすることもできます。たとえば、クリーナの実行やタイマの処理などがこれに該当します。同時に実行できるアクティブ・タスクの最大数は、-gn オプションで設定します。データベース・サーバで同時に処理できる数よりもタスクの数が多くなると、それらのタスクは実行待ちになります。アクティブ・タスクまたは処理がすでに開始しているタスクにおいて、ロックを待機したり、I/O 処理の完了を待機したりするなどの理由でブロックが必要になった場合でも、そのタスクはアクティブであると見なされます。このため、アクティブ・タスクは -gn オプションの値で設定された上限数に基づいてカウントされます。

  • スレッド   「スレッド」はオペレーティング・システムを構築するもので、アプリケーション内の「制御用のスレッド」を実行することを示します。データベース・サーバを含め、オペレーティング・システムの各プロセスは、少なくとも 1 つのスレッドによって実行されます。複数のスレッドによって実行されることもあります。スレッドは、オペレーティング・システムによってアプリケーション外部でスケジュールされ、最終的にアプリケーション実行のすべてはスレッドによって行われます。SQL Anywhere データベース・サーバ内にあるタスクは、オペレーティング・システム・スレッドで実行します。SQL Anywhere は、起動時に決められた数のスレッドを作成します。この数は、-gtc オプション (Windows または Linux の場合) または -gn オプション (UNIX の場合) で制御されます。

参照

UNIX でのタスク
Windows と Linux でのタスク
スレッド動作の制御
データベース・サーバのマルチプログラミング・レベルの設定