
私はAmazon EC2でホストされている仮想環境でMicrosoft SQL Server 2017 Web Editionを使用しています。MicrosoftのSQL Server 2017 のエディションとサポートされる機能ページで、「単一インスタンスで使用される最大コンピューティング容量 - SQL Server データベース エンジン」は「4 ソケットまたは 16 コアのいずれか少ない方に制限されます。」となっています。
Windows タスク マネージャーによると、仮想環境には 4 つの仮想プロセッサがあります。しかし、長時間実行され、負荷の高い SQL クエリを実行すると、CPU 使用率は最大 25% になります。
Web エディションの制限が 4 ソケットまたは 16 コアの小さい方である場合、仮想プロセッサを 100% 使用できるはずではないでしょうか。それとも、Windows または SQL Server が仮想プロセッサを分類する方法を誤解しているのでしょうか。
ありがとう
答え1
Windows タスク マネージャーによると、仮想環境には 4 つの仮想プロセッサがあります。しかし、長時間実行され、負荷の高い SQL クエリを実行すると、CPU 使用率は最大 25% になります。
つまり、VM がソケットあたり 1 コアとして表示されていたとしても (これは良くありません)、ライセンスごとに 4 つすべてを使用できることになります。したがって、クエリは並列プランではなくシリアル プランを実行します。
「長時間実行されるクエリ」であり、「CPU の 25%」を消費するという事実は、クエリが適切に記述されていないか、スキーマ設計が標準に達していないことを意味します。いずれにしても、並列プランを使用してクエリを実行すると (クエリが可能な場合)、サーバーの CPU 使用率が通常よりも高くなるだけです。
クエリ、スキーマ、およびサポートオブジェクトを確認して調整するのが最善です。