sys.dm_db_index_usage_stats DMVは、SQLサーバーのインデックスに対するシークとスキャンの数に関する情報を提供します
複数の列を含む複合インデックスが多数あります。これらのインデックスは、多くのメンテナンスオーバーヘッドを引き起こしていると思われます。アンは列の数を絞りたいと考えています。
複合インデックスの個々の列に対するシークとスキャンを見つける方法はありますか?
sys.dm_db_index_usage_stats DMVは、SQLサーバーのインデックスに対するシークとスキャンの数に関する情報を提供します
複数の列を含む複合インデックスが多数あります。これらのインデックスは、多くのメンテナンスオーバーヘッドを引き起こしていると思われます。アンは列の数を絞りたいと考えています。
複合インデックスの個々の列に対するシークとスキャンを見つける方法はありますか?
SQL Server
は実装されていないSKIP SCAN
ため、複合インデックスのシークには常にインデックスの左端(先頭)の列が含まれます。
つまり、にインデックスがある場合、インデックスシークはorとand(col1, col2)
の検索に使用できますが、単独では使用できません。col1
col1
col2
col2
これらの列をすべて検索する場合は、おそらくインデックスを使用することでメリットが得られます。
あなたが言及した「メンテナンスオーバーヘッド」とは何ですか?それは単一列インデックスと複数列インデックスの間でどのように異なりますか?