web-dev-qa-db-ja.com

SQL Server RAM使用量が増加しており、クエリの実行が時間とともに遅くなっています

48 GBのRAMを搭載したサーバーでSQLサーバーを使用しています。

SQL Serverサービスを開始すると、最初はRAMの12%を使用していますが、24時間後には90%に達し、クエリの実行が遅くなります。サービスを再起動する必要があるため、ユーザーにサービスを提供できます。

何が問題で、どうすれば修正できるでしょうか?

画像の例:

enter image description here

enter image description here

そして(name = 'max degree of parallelism'であるsys.configurationsからvalue_in_useを選択します)

enter image description here

サーバーコアは47です。

1
porya ras

システムのwaits statisticsに基づいて、parallelismの設定が正しくありません。

システムのMaxdop16以下にする必要があります。このMSの記事に基づいて正しい値を見つけることができます。 「並列処理の最大度」構成オプションの推奨事項とガイドライン) SQL Server

これを行ういくつかのT-SQLスクリプトを次に示します(正確なNUMA構成はわかりませんが、スクリプトはそれを容易にします): SQL ServerのMAXDOP設定アルゴリズム

これは私が同意するMax Vernonによる説明です。彼は、maxdopの誤った設定が実行速度を低下させる理由を説明しています。

コア/数値ノードの数よりも大きいMAXDOPを設定すると、遠いメモリへの呼び出しが発生し、近くのメモリを呼び出すよりも何倍も遅くなります。これは、各numaノードに独自のメモリがあるためです。クエリで単一のnumaモードに存在するよりも多くのスレッドを使用すると、CPU負荷が複数のコアに分散されるため、複数のメモリノードに分散されます。

3
sepupic

SQLは常にRAMそれはデータをキャッシュする必要があります。最小/最大RAMをインスタンスに設定することは常に良いアイデアです(特にMAXいくつか保持しますRAM)dba.SEでこの良い答えを参照してください: SQL Serverがより多くのサーバーメモリを消費する理由

SSMSでインスタンスを右クリック->メモリ->最小/最大メモリを入力します。 SQL専用マシンのOSに少なくとも4 GBを残すことをお勧めします。他のサービスを実行している場合は、それらも念頭に置いてください。

今、あなたはあなたのクエリが遅くなっていると言っています、それは起こるべきではありません。おそらく、特定のクエリに関するパフォーマンスアドバイスを求める別の質問をする必要があります。

2
Yannick Liekens