スレッドとファイバの実行

Microsoft Windows では、1 から 31 までの優先度の数値に基づいてスレッドの実行がスケジュール設定されます。ゼロは、オペレーティング システム用に予約されています。複数のスレッドが実行を待機している場合、最も優先度の高いスレッドから先に実行されます。

既定では、SQL Server の各インスタンスの優先度は 7 です。優先度が 7 のスレッドは、優先度が通常のスレッドと見なされます。この既定値により、SQL Server スレッドには、他のアプリケーションに悪影響を及ぼさずに十分な CPU リソースを得られるだけの高い優先度が与えられます。

priority boost 構成オプションを使用すると、SQL Server インスタンスのスレッドの優先度を 13 まで上げることができます。優先度が 13 のスレッドは、優先度が高いスレッドと見なされます。この設定により、SQL Server スレッドには、他の多数のアプリケーションよりも高い優先度が与えられます。したがって、通常、SQL Server スレッドは、実行可能な状態になると先に実行され、他のアプリケーションのスレッドからの割り込みを受けることはありません。サーバーで SQL Server のインスタンスだけが実行されていて他のアプリケーションが実行されていない場合は、この方法でパフォーマンスを向上させることができます。ただし、SQL Server でメモリを集中的に消費する操作が発生した場合は、SQL Server スレッドに割り込みをかけるのに十分な優先度が他のアプリケーションに与えられない可能性が高くなります。

コンピュータで SQL Server の複数のインスタンスを実行していて、一部のインスタンスのみに対して priority boost を有効にしている場合、通常の優先度で実行されているすべてのインスタンスのパフォーマンスに悪影響を及ぼすことがあります。また、priority boost が有効になっていると、サーバー上の他のアプリケーションやコンポーネントのパフォーマンスが低下することがあります。したがって、このオプションは厳密に管理された条件下でのみ使用することをお勧めします。