ワーカーが割り当てられた要求は「アクティブな要求」と呼ばれます。使用可能なすべてのワーカーがビジー状態の場合、要求はスケジュールされていない要求キューと呼ばれる特殊なキューに格納され、要求はスケジュールされていない要求として分類されます。同様に、アクティブなタスクは、ワーカーによって現在実行されているタスクです。アクティブなタスクは、アクセスプランの演算子を実行したり、その他のファンクションを実行したりします。リソースを待機することもあります。スケジュールされていないタスクは、実行の準備が整っているものの、利用可能なワーカーを待機しているタスクを指します。同時に実行できるアクティブなタスクの数は、サーバーのスレッドの数と、コンピューターに搭載されている論理プロセッサーの数によって異なります。(デフォルト)、またはマルチプログラミングレベルを手動で設定するかを選択できます。プロパティを使用して設定できます。次の表は、データベースサーバーのマルチプログラミングレベルを制御するコマンドラインオプションとサーバーオプションをまとめたものです。データベースサーバーのマルチプログラミングレベルを設定します。データベースサーバーのマルチプログラミングレベルの動的チューニングをオンまたはオフにします。ネットワークデータベースサーバーが同時に実行できるタスクの最大数を設定します。ネットワークデータベースサーバーが同時に実行できるタスクの最小数を設定します。ネットワークサーバーは、サーバーのマルチプログラミングレベルの動的チューニングと手動チューニングの両方をサポートしています。ネットワークサーバーは、データベースサーバーのスループットレベルを自動的にモニターし、現在の負荷に応じてマルチプログラミングレベルを調整する方法を決定できます。データベースサーバーは山登り法というアルゴリズムと放物線近似法を使用して、必要な調整を決定します。マルチプログラミングレベルを上げるとネットワークデータベースサーバーのスループットレベルが上がる場合、ネットワークデータベースサーバーはそのまま処理を続行します。マルチプログラミングレベルを上げるとスループットが低下する場合、データベースサーバーはマルチプログラミングレベルを下げます。データベースサーバーはスループットレベルを常時モニターし、サーバースループットが向上するようにマルチプログラミングレベルを変更します。多数の要求が短時間に集中し、その後長いアイドル時間が続く場合は、最小マルチプログラミングレベルを予想される最大同時実行レベルに設定することをおすすめします。このように設定すると、データベースサーバーは要求が短時間に集中している間でも応答できます。動的チューニングアルゴリズムで使用されるマルチプログラミングレベルの最小値と最大値をそれぞれ設定します。動的チューニングが有効になっている場合、スレッドデッドロックが発生するたびに、データベースサーバーはマルチプログラミングレベルを自動的に上げてスレッドデッドロックの問題を排除しようとします。値になるまでマルチプログラミングレベルを上げ続けます。値に達すると、データベースサーバーはスレッドデッドロック問題をクライアントアプリケーションに返し始めます。サーバープロパティを参照してください。マルチプログラミングレベルを手動で調整するには、まず、その動的チューニングを無効にする必要があります。アプリケーションの負荷をテストして、サーバースループットと要求の応答時間に対する、データベースサーバーのマルチプログラミングレベルの効果を分析することをおすすめします。使用すると、アプリケーションのテスト時にデータベースサーバーの動作を簡単に分析できます。関数を使用すると、パフォーマンス統計を問い合わせることができます。この分析中に、アクティブな要求やスケジュールされていない要求に関連のあるパフォーマンスカウンターを確認してください。サーバープロパティを参照してください。データベースサーバーオプションの値よりも常に小さい場合は、マルチプログラミングレベルを下げることを検討します。データベースサーバーの実行キューに対してタスクを追加するクエリ内並列処理の効果を考慮に入れる必要があります。クエリ内並列処理の効果が不十分である場合は、全体的なシステムスループットを低下させることなく、安全に、マルチプログラミングレベルを下げることができます。指定された値よりも大きくなることが多い場合は、マルチプログラミングレベルを上げることができます。マルチプログラミングレベルを上げた場合のパフォーマンスのトレードオフを検討してからレベルを変更してください。マルチプログラミングレベルの増加を参照してください。