SQL
fill factor の現状確認 SQL
出典: 業務 SE が SQL Server INDEX 断片化に手を出す前に見る 3 箇所 — REBUILD / REORGANIZE / 放置の判断軸 — 罠③: fill factor の決め方 / fill factor の現状確認 SQL
-- 全 INDEX の fill factor 現状
SELECT
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
i.type_desc AS index_type,
i.fill_factor, -- 0 は実質 100 と同じ意味
i.is_padded,
si.user_updates AS update_count_since_restart
FROM sys.indexes i
LEFT JOIN sys.dm_db_index_usage_stats si
ON si.object_id = i.object_id AND si.index_id = i.index_id
WHERE i.name IS NOT NULL
AND OBJECTPROPERTY(i.object_id, 'IsUserTable') = 1
ORDER BY si.user_updates DESC;
▸ 実行ボタンで結果を表示
Source収録記事
この snippet は記事の「罠③: fill factor の決め方 / fill factor の現状確認 SQL」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
3 件-- 全 INDEX の断片化を一発で返す (SAMPLED モード) SELECT OBJECT_NAME(ps.object_id) AS table_name, si.name AS index_name,
▶ 実行可
罠①: 断片化率と page_count の見方
#a957935a3f52
-- 現在のロック保持状況 (Sch-M / Sch-S を含む) SELECT request_session_id AS session_id, resource_type,
▶ 実行可
罠 2-c: Sch-M ロックは ONLINE でも瞬間発生する
#20036fe3c264
-- 更新多い INDEX を REBUILD + fill factor 85% で再構築 ALTER INDEX [IX_Orders_OrderDate] ON [dbo].[Orders] REBUILD WITH (未収録
REBUILD と一緒に fill factor を変える書き方
#9b242fc587e9
