본문 바로가기

DBMS/SQL Server

[SQL Server] 파일 그룹별 Object 및 Object의 Index 정보 리스트

 

파일 그룹별 Object 및 Object의 Index 정보 리스트

 

sys.filegroups, sys.indexes, sys.database_files, sys.data_spaces 시스템 카탈로그를 사용하여

파일 그룹별 Object 및 Object의 Index 정보를 볼 수 있는 쿼리를 만들어보자.

 

 SELECT OBJECT_NAME(i.[object_id]) AS [ObjectName]

       ,i.[index_id] AS [IndexID]

       ,i.[name] AS [IndexName]

       ,i.[type_desc] AS [IndexType]

       ,i.[data_space_id] AS [DatabaseSpaceID]

       ,f.[name] AS [FileGroup]

       ,d.[physical_name] AS [DatabaseFileName]

 FROM [sys].[indexes] i

 INNER JOIN [sys].[filegroups] f

    ON f.[data_space_id] = i.[data_space_id]

 INNER JOIN [sys].[database_files] d

    ON f.[data_space_id] = d.[data_space_id]

 INNER JOIN [sys].[data_spaces] s

    ON f.[data_space_id] = s.[data_space_id]

 WHERE OBJECTPROPERTY(i.[object_id], 'IsUserTable') = 1

 ORDER BY OBJECT_NAME(i.[object_id])

         ,f.[name]

         ,i.[data_space_id]

 GO

 

 

AdventureWorks2008 샘플 데이터베이스에서 실행시킨 결과

 

참고 : http://basitaalishan.com/2013/03/03/list-all-objects-and-indexes-per-filegroup-partition/