web-dev-qa-db-ja.com

データベースエンジンチューニングアドバイザーの推奨事項を信頼できますか?

データベースが大きくなり、パフォーマンスを最適化しようとしています。

プロファイラーで生成された.trcファイルを提供することにより、データベースエンジンチューニングアドバイザーが提供する推奨事項に従うことができますか?

これは最適化する良い方法ですか?これらの推奨事項はどの程度正確ですか?

5
Raj Kumar

チューニングアドバイザー(DTA)は欠落しているインデックスに関する情報を提供できますが、結果は、提供したワークロードと、結果を解釈してギャップを埋める能力と同じくらい良好です。

  • .trcファイルには、すべてではなく特定のイベントのみが含まれる場合があり、ビジネスサイクル全体をカバーしない場合があります。したがって、月末に実行される大量のレポートがある場合、ワークロードの最も重要な部分が欠落している可能性があります。
  • DTAは読み取りクエリのパフォーマンスの向上のみを考慮し、新しいインデックスがワークロードの書き込み部分に与える影響についてはまったく考慮しません。インデックスは無料ではありません。
  • DTAは、1つの追加のキー列またはインクルード列のみが異なる複数の冗長インデックスを推奨する傾向があります。多くの場合、1つのインデックスが、2つの個別のインデックスの推奨を生成した両方のクエリを満たすことができます。

したがって、この情報は役に立ちますが、クライアントがすべてのインデックスを盲目的に実装することは決してできません。より多くのデータポイントを考慮する必要があります。

たとえば、インデックスを追加するとパフォーマンスの問題が改善されるという結論にどのように達しましたか?ベースラインを実行し、ボトルネックを特定しましたか?

10
Aaron Bertrand

アプリケーションおよびサーバーのパフォーマンスに与える可能性のある全体的な結果を理解しない限り、ツールによって推奨事項を盲目的に実装することはできません。

盲目的に実装する前に必ず評価してください。

DTAは、提示されたワークロードに基づいて推奨事項を生成します。

From [〜#〜] bol [〜#〜]

データベースエンジンチューニングアドバイザーの推奨事項は、SQL Serverクエリオプティマイザーが行うクエリ実行コストのestimationに基づいています。データベースエンジンチューニングアドバイザーの推奨事項を適用した後のクエリパフォーマンスの実際の改善は、データベースエンジンチューニングアドバイザーが分析を完了した後に表示される推定の改善とは異なる場合があります。

DTAの推奨事項が間違っている、または間違っていると言っているのではなく、テーブル/列で重複したインデックスやより多くの統計を作成する可能性があるので、その影響を理解していることを確認してください。

2
Kin Shah