インデックスがたくさんあるデータベース(SQL Server 2012)をクリーンアップしています。私が信じているものは、削除されたりマージされたりする可能性があります。冗長な類似インデックス
例えば、私は index1のがあります:
INDEX2CREATE NONCLUSTERED INDEX [index1] ON [dbo].[MyTable]
(
[Project] ASC
)
INCLUDE (a_bunch_of _columns)
と:
CREATE NONCLUSTERED INDEX [index2] ON [dbo].[MyTable]
(
[Project] ASC,
[Type] ASC
)
INCLUDE (a_bunch_of _columns)
私は INDEX1がよりもはるかに多く使用されていることをDB統計で見ますindex2しかし、私はすべての情報がindex1は、index2にあります。したがって、のインデックス1が削除された場合、DBエンジンはインデックス2の代わりにインデックス1の代わりに検索します。パフォーマンスは今のところ良くなります。 (維持するために1つ少ないインデックスがあるので少しでも良い)
これは間違っていると思いますか?
'index1'のインクルード列が' index2'にあると仮定すると、あなたの前提は正しいです。 'DBCC FREEPROCCACHE'を使用して古い索引を使用するプロシージャのいくつかについては、プラン・キャッシュをクリアする必要があります。 –
BrentOzar.comにアクセスして、それらのsp_BlitzIndexを見てください。重複しているか重複している部分が強調表示され、欠落しているインデックスが表示されます。 –