5

SQL 2005 データベースに、2,000,000 以上のレコードといくつかのインデックスを持つテーブルがあるとします。クエリでインデックス ヒントを使用する利点は何ですか? クエリでインデックス ヒントを使用することに不利な点はありますか?

4

4 に答える 4

3

最初に、SQL プロファイラーを使用して、データベース内のアクティビティの .trc ファイルを生成し、通常のワークロードを数時間にわたって実行してみてください。次に、SQL Server Management Studio の [ツール] メニューの [データベース エンジン チューニング アドバイザ] を使用して、有益な追加のインデックス、複合インデックス、またはカバー インデックスが提案されているかどうかを確認します。

私はクエリ ヒントをまったく使用せず、主に数百万行のデータベースを操作します。パフォーマンスに悪影響を与えることがあります。

于 2008-09-22T20:17:28.897 に答える
3

ここにいるすべての人が指摘していると私が信じている重要な点は、非常に慎重に検討することで、インデックス ヒントを使用するとクエリのパフォーマンスが向上するということです。サーバーは正しいものを使用していません。

私の経験では、インデックス ヒントを必要とすることはあまり一般的ではないことがわかりました。現在使用されている 2 ~ 3 個のクエリでそれらを使用している可能性があると思います.... 適切なインデックスの作成とデータベースの最適化により、ほとんどの情報が得られるはずです。実行中のデータベースへの道。

于 2008-09-22T20:39:54.707 に答える
2

インデックス ヒントは、クエリがテーブルの結合を伴う場合、および他のテーブルへの結合に使用される列が複数のインデックスと一致する場合にのみ機能します。その場合、データベース エンジンは 1 つのインデックスを使用して結合を行うことを選択する可能性があり、調査から、別のインデックスを使用するとクエリのパフォーマンスが向上することがわかる場合があります。その場合、使用するインデックスをデータベース エンジンに伝えるインデックス ヒントを提供します。

于 2008-09-22T20:27:24.753 に答える
1

私の経験では、SQL Server よりもデータセットについてよく知っている場合があります。その場合、クエリ ヒントを使用する必要があります。つまり、オプティマイザの決定を支援します。

SQL Server が複雑なクエリで最適なインデックスを使用しなかったデータ ウェアハウスを構築したことがあります。クエリにインデックス ヒントを与えることで、クエリを約 100 倍高速化することができました。

クエリ プランを分析した後にのみ使用してください。別のインデックスを使用したり、別の順序で使用したりすると、クエリをより高速に実行できると思われる場合は、サーバーにヒントを与えてください。

于 2008-09-22T20:30:38.630 に答える