When
database consists of multiple data files and objects (tables/indexes)
are dispersed on these multiple data files. Common requirement is to get
a list of objects (tables, indexes) along with their physical path.
Here is a simple query to accomplish this task.
SELECT 'table_name' = OBJECT_NAME(i.id),
i.indid,
'index_name' = i.name,
i.groupid,
'filegroup' = f.name,
'file_name' = d.physical_name,
'dataspace' = s.name
FROM sys.sysindexes i,
sys.filegroups f,
sys.database_files d,
sys.data_spaces s
WHERE OBJECTPROPERTY(i.id, 'IsUserTable') = 1
AND f.data_space_id = i.groupid
AND f.data_space_id = d.data_space_id
AND f.data_space_id = s.data_space_id
ORDER BY f.name,
OBJECT_NAME(i.id),
groupid
No comments:
Post a Comment