約 40 の異なる (それぞれ約 1 ~ 5 GB) データベースを持つ SQL サーバーがあります。サーバーは、32Gigs の RAM を備えた 8 コア 2.3G CPU です。27Gig は SQL Server に固定されています。CPU 使用率はほぼ常に 100% に近く、メモリ消費は約 95% です。ここでの問題は、CPU が常に 100% に近く、その理由を理解しようとしていることです。
このスクリプトを使用して、どのデータベースが高 CPU に寄与しているかを確認するための最初のチェックを実行しましたが、実際に CPU を消費しているものについて詳細に実証することはできませんでした。トップ クエリ (すべての DB から) は、完了するまでに約 4 秒しかかかりません。IO もボトルネックではありません。
ここでメモリが犯人でしょうか?メモリ分割を確認したところ、OBJECT CACHE は SQL Server に割り当てられたメモリ (27G) の約 80% を占めています。多くのSPが関与している場合、それが正常であることを願っています。プロファイラーを実行すると、多くの再コンパイルが見られますが、ほとんどは「一時テーブルの変更」、「遅延コンパイル」などが原因であり、これらの再コンパイルがメモリ不足のためにプランがキャッシュからスローされた結果であるかどうかは明確ではありません
どんな考えでも感謝します。