各インデックスに適切な曲線因子値を使用SQL Server
し、割り当てたいと考えています。私は各インデックスの以下のパラメータを知っています:
- 各テーブルの行数
- 各インデックスで発生したスキャンの量
- 各インデックスで発生したシークの量
- 各インデックスで発生したルックアップの量。
- 各インデックスで発生した更新の量。
スキャン、シーク、ルックアップでフィルファクターの値が100に上がり、フィルファクターが0に更新されることは知っていますが、各テーブルの上記のパラメーターに従って適切なフィルファクターオプションを計算するための式を探しています。
編集
以下のスクリプトを使用して、上記のパラメーターを取得します。
select SCHEMA_NAME(B.schema_id)+'.'+B.name+' \ '+C.name AS IndexName,
A.user_scans,
A.user_seeks,
A.user_lookups,
A.user_updates,
D.rowcnt,
C.fill_factor
from sys.dm_db_index_usage_stats A
INNER JOIN sys.objects B ON A.object_id = B.object_id
INNER JOIN sys.indexes C ON C.object_id = B.object_id AND C.index_id = A.index_id
INNER JOIN sys.sysindexes D ON D.id = B.object_id AND D.indid = A.index_id
編集2 私はフィルファクターオプションの最良の値のために以下のリファレンスを使用します: