日々学習〜人の役に立てるITエンジニアを目指して〜

ITエンジニアが日々学んだ事を書き記します

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

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

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

 

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

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'

 

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

別に原因があるようだ。