SQL Serverのインデックスチューニングを学習するにはどうすればよいですか? [閉まっている]
-
03-07-2019 - |
質問
tsqlクエリの作成中にインデックスチューニングを学習するための最良の実用的な方法は何ですか? VS2008 SQL Expressを使用しています。誰かが私に例などを提供してもらえますか?私はすでにオンライン記事を見つけました、そして、それらは理論上素晴らしいです、しかし、私はまだ実際の行動でインデックス調整を見ることを失敗します。簡単にサンプルを作成できますか?
解決
インデックスをチューニングするには、大量のデータを含む大きなテーブルが必要になる傾向があるため、小さな単純な例は簡単に手に入りません。
私の経験はSQL 2000ツールに関するものです。クエリアナライザー。実行プランを表示し、使用されているインデックスと結合の種類を確認します。ここで説明するのは非常に難しい。
このテーマに関する良い本、特に第9章をお勧めできます。
http://www.amazon.com/Professional-Server-Performance-Tuning- Programmer / dp / 0470176393
手動で行う方法を理解するまで、自動化されたインデックスチューニングツールを使用しないようにしてください。インデックスを追加することを推奨する場合、推奨事項の妥当性をチェックし、それが適切なオプションであるかどうかを自分で判断できることが重要だと思います。多くの場合、「カバー」を追加することをお勧めします。分析するように要求した単一のクエリを高速化するために多くの列を持つインデックスを作成しますが、そのテーブルに対するすべてのクエリを見ると、データベース全体に悪影響を与える可能性があります。
他のヒント
Kimberly Trip(SQL Goddess)は専門家であり、&件名に書かれたロット:
http://www.sqlskills.com/BLOGS/KIMBERLY/category /Indexes.aspx
SQL Developerエディションをお持ちの場合は、データベースエンジンチューニングアドバイザーをご覧ください。
プロファイラーを使用してデータベースに対する標準ワークロードをキャプチャする場合、DETAは適用可能な統計とインデックスを推奨できます。
新しいインデックスを追加するとワークロードの速度が上がる可能性がありますが、非常に重要なクエリを犠牲にして重要でないクエリの速度を上げる可能性があるため、チューニングには十分な注意が必要です。
TSQLクエリに関する優れた本があり、クエリの動作方法と、チューニングをMSSQL固有の方法で見る方法について非常に良いアドバイスがあります。
SQL Serverでは、データベーススキーマがより単純なスキーマである場合、主キーは自動的にクラスター化インデックスになり、外部キー制約には一意のインデックスが必要になるため、あまりチューニングする必要はありません。 そのため、通常は結合が処理されます。
難しいのは、アプリケーションのクエリが使用する検索とフィルターです。これらのクエリを具体的に見て、追加のインデックスの候補を特定する必要があります。
別のオプションはSQL Server Tuning Advisorですが、非常に多くのノイズが発生するため、使用しないことをお勧めします。ただし、最も問題のあるクエリを見つけるために使用できます。
最もパフォーマンスの低いクエリを特定する出発点については、私の回答ここ。
チューニングの方法を学ぶには、練習が必要です。習熟したい場合は、Sajal Damの本 SQL Server Query Performance Tuningを購入することから始めてください。蒸留
Ken Englandの Microsoft SQL Server 2000パフォーマンス最適化およびチューニングハンドブックはクラシック。 (Amazonのレビューでは、この本の2005年版はそれほど良くないと言っています)