web-dev-qa-db-ja.com

リソースガバナーはリソース使用量を増やしているようです

残念ながら、本番システムと同じインスタンスでデータウェアハウスを実行する立場にありますOLTPシステム。最近、「パワーユーザー」が会社に加わり、DWに対してSQLステートメントの実行を開始しました。昨日、彼はクエリを実行して、ページの平均寿命を通常の20万秒以上から39秒に短縮しました。

私はこの問題に対する2つの解決策を考えました。 1つは、データウェアハウスをAzureデータベースに移動することです。これにより、OLTPシステムのリソースが不足するのを防ぎますが、金銭的なコストが発生します。2番目の解決策は、Resource Governorを使用して、特定のユーザーまたはDWデータベース全体で使用できるリソースを制限することです。 。これは無料のソリューションのように見えるので、最初に調査しています。これまでResource Governorを使用したことがないので、期待どおりに機能することを確認するためにいくつかのテストを設定しました。最初にいくつかの大きなクエリを実行しました。リソースガバナーを設定せずに、CPU使用率、読み取り、および期間を記録しました。次に、適切なリソースガバナー設定を作成し、クエリを再実行しました。期間は予想どおりに増加しましたが、CPUと読み取りも増加するのを見て驚きました。 CPU使用率が2倍以上になり、読み取りが10倍に増加しました。これにより、ページの期待寿命が低下するのを防ぎました。これは、リソースガバナーを使用する場合の典型的な出来事ですか?特定のユーザーやデータベースがリソースを占有するのを制限する他のアイデアはありますか?

2
Dave.Gugg

私は3つの提案があります

  1. データウェアハウスの設計を調べてください。アドホッククエリを比較的高速に実行できるように最適化する必要があります。 AnalysisServicesはこれを支援します。
  2. DWクエリを忙しい時間帯にオフロードします。これは私が働いたことのある会社にとって本当にうまくいくと思います。ほとんどのユーザーがシステムにアクセスしているときは、「大きな」クエリを実行しないでください。代わりに、サーバーの負荷が低いときに保存する必要があります。
  3. パワーユーザーが適切なクエリを記述しているかどうかを確認します。高度に最適化されたインデックス、優れたアーキテクチャ、および前処理されたキューブを使用できますが、パワーユーザーがセットベースではなく手続き的にソリューションを作成している場合、それは問題になります。たぶん、彼はあまりにも多くのデータを集めていますが、使用するのはごく一部です。誰が知っていますが、不十分に書かれたクエリが原因である可能性が非常に高いです。
1