在檔案群組中放置索引

在您開發索引設計策略時,您應該考慮在資料庫關聯的檔案群組上之索引位置。小心地選取檔案群組或資料分割配置將可改善查詢效能。

依預設,索引會與建立索引的基底資料表儲存在同一個檔案群組中。非資料分割的叢集索引與基底資料表永遠都在相同的檔案群組中。然而,您仍可執行下列工作:

  • 在基底資料表的檔案群組以外的檔案群組上建立非叢集索引。
  • 將叢集與非叢集索引分割以跨越多個檔案群組。
  • 在檔案群組之間移動資料表,方法為卸除叢集索引,並在 DROP INDEX 陳述式的 MOVE TO 子句中指定新檔案群組或資料分割配置,或使用 CREATE INDEX 陳述式加上 DROP_EXISTING 子句。

在別的檔案群組中建立非叢集索引後,如果檔案群組是使用不同的實體磁碟機,而且這些磁碟機各有它們自己的控制器,就可以獲得效能提升。然後可以由多個磁碟讀寫頭平行讀取資料與索引資訊。例如,如果 Table_A 在檔案群組 f1 上,而 Index_A 在檔案群組 f2 上,它們都用於同一個查詢中,由於可以充分利用兩個檔案群組,不會發生競爭現象,因此可以改善效能。不過,如果查詢掃描 Table_A,但不參考 Index_A,就只會使用檔案群組 f1。這並不會創造效能的提升。

由於您無法預測何時會發生哪種存取方式,所以比較好的作法是將資料表與索引分散到所有的檔案群組。這樣就可以保證會存取到所有的磁碟,因為不論資料的存取方式如何, 所有的資料與索引都平均分散在所有的磁碟上。這也是系統管理員較單純的作法。

多個檔案群組間的資料分割

您也可以考慮將叢集與非叢集索引分割於多個檔案群組之間。資料分割索引是以水平方式分割,或根據資料分割函數依資料列來分割。資料分割函數是用以定義每個資料列是否對應到一組資料分割,這些資料分割是根據一些稱為資料分割資料行之值。資料分割配置指定資料分割與一組檔案群組的對應。

分割索引將可提供下列優點:

  • 提供可擴充的系統,使大型索引更易於管理。例如 OLTP 系統可實作資料分割感知的應用程式,以處理大型索引。
  • 使查詢執行更快和更具效率。當查詢存取索引的一些資料分割時,查詢最佳化工具可以同時處理個別的資料分割並排除未受查詢影響的資料分割。

如需詳細資訊,請參閱<資料分割資料表與索引>。

若要在特定檔案群組上建立新的索引

CREATE INDEX

若要將現有的索引或資料表移動至不同的檔案群組

如何:將現有的索引移到不同的檔案群組 (SQL Server Management Studio)

DROP INDEX MOVE TO

CREATE INDEX WITH DROP_EXISTING

請參閱

概念

一般索引設計指導方針
索引設計基本概念
實體資料庫檔案與檔案群組
瞭解檔案及檔案群組

說明及資訊

取得 SQL Server 2005 協助