2009-03-08 7 views

答えて

2

私の記事を楽しんでうれしいです!

DMV(www.manning.com/stirk)によるSQL Serverのパフォーマンスについての私の新しい本では、第10章では、自動的にインデックスを作成するスクリプトがあります。削除するスクリプトもあります未使用の索引...これらを一緒に使用する方法を見ることができます。

おかげ イアン

3

私の知る限り、SQL Serverには自動テーブルインデックスの作成を可能にする機能はありません。

適切なインデックスを取得することは、実際には本当に自動化できるものはほとんどありません。

確かに - あなたは、「ID」と呼ばれる任意の列に主キーを配置することができます - あなたが何か他の主キーを必要とする場合に実行されるまで....

は確かに、それはインデックスに理にかなっています子表の外部キー列 - 場合によっては、INSERTのオーバーヘッドが増えることで、索引の持つ利益を上回る可能性があります。

正しいインデックスを取得することは、あなたの実際の使用量と多くの動的な使用パラメータ(およびあなたの設計上の決定も)にあまりにも依存しているため、すべてのソリューションが本当に機能するかどうかは驚きですそのほか...

マルク・

3

私は、任意のツールを認識していないよ、とインデックスを作成するための最良の方法は、実際に手動でクエリとその実行計画を確認することです。私は、自動化されたツールがProfilerと一緒にデータを分析する優れたDBAほど良いとは思えません。

しかし、自分で撮影したいと思えば、SQL Serverのパフォーマンスビューを見ることをおすすめします。

まず、インデックス番号を付けることで利益を得ることができるヒントを得るために、sys.dm_db_missing_index_columnsという機能を使用してください。

sys.dm_db_index_usage_statsは、どのインデックスが役に立たないのか、最適化できるのかを示すことができます。

sys.dm_exec_cached_planssys.dm_exec_query_plansys.dm_exec_query_statssys.dm_exec_sql_textを行い、あなたにクエリを示さなければならないと、彼らは、一緒に他のテーブルからの情報を使用して実行する方法は、おそらく多くの作業を必要としているものを見つけることができます。

実際、プロファイラのパフォーマンスを分析するのに役立つウィザードは、おそらく自動的にではなく曖昧に思いますが、それをメンテナンスプランに入れることは可能かもしれません。

0

私はそれは古いスレッドだけど、私は誰かがこれは面白いかもしれないと思った:

http://blogs.msdn.com/b/queryoptteam/archive/2006/06/01/613516.aspx

それは私が注意に耳を傾ける素晴らしいですねにもかかわらず - インデックスがシステムを無力することができます彼らが飛ぶことができる限り - あなたがしていることを知っている場合にのみ使用してください!

+0

リンクだけを含む回答は[悪い習慣とみなされます](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers)。答えがそれ自身の上に立つことができるように、ここに内容を要約してください(コピー/貼り付けはしないでください)。あなたがしない場合は、特にリンクが死ぬ場合は、あなたの答えが削除されるリスクを実行します。 –

関連する問題