9

SQL Server インスタンスの 1 つを 2000 から 2005 にアップグレード中です。パフォーマンス ダッシュボードをインストールしました ( http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204 -e419218c1efc&displaylang=en ) を使用すると、高レベルのレポートにアクセスできます。レポートの 1 つは、不足している (推奨される) インデックスを示しています。クエリオプティマイザーによって維持されるシステムビューに基づいていると思います。

私の質問は、指数の推奨をいつ行うべきかを判断する最善の方法は何かということです。オプティマイザーの提案をすべて適用するのは意味がないことはわかっています。基本的に、インデックスを試してみて、パフォーマンスが向上した場合はそれを維持し、パフォーマンスが低下するか同じままである場合はインデックスを削除するようにというアドバイスをたくさん目にします。決定を下すためのより良い方法があるかどうか、またこの件に関してどのようなベスト プラクティスが存在するかを考えています。

4

3 に答える 3

4

最初に知っておくべきこと:

2000 から 2005 に (デタッチとアタッチを使用して) アップグレードする場合は、次のことを確認してください。

  1. 互換性を90に設定
  2. インデックスを再構築する
  3. フル スキャンで統計の更新を実行する

これを行わないと、次善の計画が得られます。

テーブルがほとんど書き込みである場合は、できるだけ少ないインデックスが必要です。テーブルが多くの読み取りクエリに使用されている場合は、WHERE 句がインデックスでカバーされていることを確認する必要があります。

于 2008-08-08T13:32:30.550 に答える
3

あなたが得たアドバイスは正しいです。それらすべてを 1 つずつ試してください。

パフォーマンスに関しては、テストに代わるものはありません。それを証明しない限り、あなたは何もしていません。

于 2008-08-06T21:11:53.987 に答える
0

データベースで発生する最も一般的なタイプのクエリを最善の方法で調査し、その調査に基づいてインデックスを作成します。

たとえば、Web サイトのヒットを格納するテーブルがあり、非常に頻繁に書き込まれますが、ほとんど読み取られないとします。次に、テーブルにインデックスを付けないでください。

書き込みよりも頻繁にアクセスされるユーザーのリストがある場合は、最初に、最もアクセスが多い列 (通常は主キー) にクラスター化インデックスを作成します。次に、一般的に検索される列と、order by 句で使用される列にインデックスを作成します。

于 2008-08-06T21:03:51.913 に答える