0

シナリオは次のとおりです。

DTA が検索する 3 つのイベント (気にしないでください) を使用して、最大サーバー負荷の間に数時間トレースを実行しました。次に、このプロファイラーの負荷を停止して DTA にフィードします。チューニング作業を行い、どのインデックスを配置する必要があるかについてフィードバックを提供します。

質問は次のとおりです。

いくつか (最大 15) の異なるインデックスの推奨事項は、単一のテーブル用です。DTA に作業を任せると、このために複数のインデックスが作成されることになりますか? これは問題になりませんか?

4

4 に答える 4

1

DTA は多くの状況で合理的ですが、常に最適な推奨を行うとは限りません。非クラスター化インデックス (!) としてのクラスター化インデックスの重複と同様に、オーバーラップは非常に一般的です。

これを手動でより正確に行いたい場合: MS SQL Server 2008 - How Can I Log and Find the Most Expensive Queries?

于 2010-01-05T13:42:53.990 に答える
0

テーブル、クエリ、またはインデックスについてこれ以上知らなくても、答えは「依存する」でなければなりません...

出発点として、DTA からの出力を取得する必要があります。推奨されるインデックスを見ると、インデックスの数を減らすためにそれらの間に重複があることがわかる場合があります。

于 2010-01-05T13:39:27.757 に答える
0

15 個のインデックスは、1 つのテーブルには多くのように思えます。それに対して実行される実際のクエリ自体を調べます。

クエリ構造への変更がすべて既存のインデックスまたは提案されたインデックスの小さなサブセットに対して機能する場所を探します。

于 2010-01-05T14:00:57.107 に答える
0

SQL サーバーの最適化は複雑で、データベース内のデータに大きく依存します。変更の影響を判断する唯一の実際の方法は、代表的なデータ(できればライブ データベースのバックアップ)を使用して、データベースに対してパフォーマンスと負荷のテストを実行することです。

とは言っても、15 個のインデックスは私には多くのように思えます。インデックスが多数あると、そのテーブルに対する書き込み速度に悪影響を与える可能性があります。DTA はおそらく、そのテーブルに対して実行された各クエリを個別に取得し、各クエリに最適なインデックスを見つけました。おそらく、複数のクエリに適したインデックスを作成することで、インデックスの数を減らすことができることに気付くでしょう。これは、一部のクエリが15 個すべてのインデックスよりもわずかに遅いことを意味する可能性がありますが、99% のクエリを取得できる可能性があります。改善。

于 2010-01-05T13:50:24.480 に答える