新しく学んだ事

業務システムの受託開発を主に行っています。人生日々勉強。日々新しく学んだ事を記します。

テーブルの断片化を調べる方法

テーブルの更新時に想定しない更新が行われたため、

テーブルの断片化が原因ではないかと思い、調査方法を調べた。

 

テーブルの断片化を調べる方法

use (データベース名)
SELECT DB_NAME(s.database_id), OBJECT_NAME(s.object_id), s.index_type_desc, i.name, s.fragment_count, s.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(データベース名), NULL, NULL, NULL, 'LIMITED') s
INNER JOIN sys.indexes i ON i.object_id = s.object_id
and i.index_id = s.index_id

 

[補足]

テーブルの一覧を取得する方法

SELECT * FROM sysobjects
WHERE xtype = 'u'

 

テーブルの断片化はされていなかったので、

別に原因があるようだ。