2012-10-16 37 views
2

我有3個數據文件用於SQL Server 2005中數據庫的主文件組。是否可以確定某個特定索引駐留在哪個數據文件上,或者它們是否存在多個文件組中的數據文件?tsql返回索引的數據文件

回答

0

對象如tabkes和指標都是建立在一個文件組,而不是文件。索引很可能駐留在文件組中的所有文件中。有些情況並非如此,例如,如果添加了更多文件,導致文件分配熱點等,但SQL Server對文件使用比例填充算法並均勻填充它們。

您可以通過運行

DBCC IND('myDatabase','myTable',2) 

其中2是你感興趣的指數IndexID爲見是肯定的。

這會告訴你每個頁面的FILEID

2
select object_name(i.id) as TableName 
,  i.name as IndexName 
,  fg.name as FilegroupName 
,  df.name as FileName 
,  df.physical_name as FilePhysicalName 
from sys.sysindexes i 
join sys.filegroups fg 
on  fg.data_space_id = i.groupid 
join sys.database_files df 
on  df.data_space_id = fg.data_space_id 
join sys.data_spaces ds 
on  ds.data_space_id = fg.data_space_id 
where objectproperty(i.id,'IsUserTable') = 1