web-dev-qa-db-ja.com

データベースが使用するSQL Serverメモリを削減する

先週の日曜日にUATサーバーでページの寿命が約25kから400/500/600に下がったため、数週間にわたって25,000を超えるページの寿命がありました。これがUATであるため、この大きな低下の原因を特定できません。サーバー週末に実行されているプロセスはなく、誰も接続していませんでした。

これとは別に、バッファページの95%がクラスタ化インデックスの特定の1つのテーブルに割り当てられていることを確認しました...

このテーブルにアクセスするアプリケーションは、パラメーター化なしで大量のアドホッククエリを実行します(3番目のベンダーアプリケーション、私は何も触れられません...)これを活用するために実際にできることがあるかどうかわかりませんRAM使用量は50GB以上のRAMであり、メモリプレッシャーBCHR <95%と低いページ寿命予測に直面し始めています!

バージョン:

Microsoft SQL Server 2012 (SP3-CU1) (KB3123299) - 11.0.6518.0 (X64) 
Jan  7 2016 14:39:01 
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

どんな助けでも感謝します、ありがとう!

3
J1mmy

あなたの最良のオプションは Resource Governor を使用することです。そのベンダーアプリ用のリソースを作成し、そのためにメモリをスロットルするだけです。

あなたはあなたがそのワークロードを特定しようとしているものを思いつく必要があります あなたは許可されています

  • 着信接続を分類し、そのワークロードを特定のグループにルーティングする機能。
  • グループ内の各ワークロードのリソース使用状況を監視する機能。
  • リソースをプールし、CPU使用率とメモリ割り当てにプール固有の制限を設定する機能。これにより、クエリが暴走する可能性を防止または最小限に抑えることができます。
  • グループ化されたワークロードを特定のリソースプールに関連付ける機能。
  • ワークロードの優先順位を識別および設定する機能。
1
user507