資料分割資料表和索引概念

分割大型資料表或索引將更易於管理,因為分割可讓您快速和有效率地管理和存取資料子集,同時又可維護資料集合的完整性。透過使用資料分割,例如從 OLTP 載入資料至 OLAP 系統的作業,只需花費數秒鐘的時間,而不用像舊版的 SQL Server 需花費數分鐘或數小時來執行作業。在資料子集上執行的維護作業也將會更有效率,因為這些作業只處理所需的資料,而非整個資料表。

[!附註]

只有 SQL Server Enterprise、Developer 和 Evaluation 版本上才可使用資料分割資料表和索引。

資料分割資料表和索引的資料,已分成可以在資料庫中的多個檔案群組之間分佈的單位。資料是以水平方式分割,因此資料列的群組可對應至個別的資料分割。在資料上執行查詢或更新時,資料表或索引會被視為單一邏輯實體。單一索引或資料表的所有資料分割必須在同一個資料庫中。

資料分割資料表和索引支援所有與設計和查詢標準資料表及索引相關的屬性和功能,包含條件約束、預設值、識別值和時戳值以及觸發程序。因此,如果您想要在某個伺服器上實作本機資料分割檢視,可以改實作資料分割的資料表。

決定是否實作資料分割主要取決於資料表有多大或它將會變成多大、如何使用它以及針對使用者查詢和維護作業執行的情況。

一般而言,如果下列兩者均成立,大型資料表可能適用於資料分割:

  • 資料表包含或應包含以不同方式使用的許多資料。

  • 針對資料表的查詢或更新並未如預期執行,或是維護成本超過預先定義的維護期限。

例如,如果目前月份的資料主要是使用 INSERT、UPDATE、DELETE 和 MERGE 作業,而前面的月份主要是使用 SELECT 查詢,如果能以月份分割此資料表,管理起來會比較容易。如果在資料表上的一般維護作業只需針對資料子集,此優點可能特別有用。如果未分割資料表,這些作業可能在整個資料集上耗用許多資源。透過資料分割,像索引重建和重組等維護作業可在單一月份的唯寫資料上執行,而唯讀資料仍然可在線上存取。

若要延伸此範例,可假設您要將一個月份的唯讀資料從此資料表移動到資料倉儲資料表供分析。透過資料分割,資料子集可以快速分割成臨時區域以利離線維護,然後以資料分割的形式加入現有資料分割資料表,這是假設這些資料表全部都在同一個資料庫執行個體中。像這些作業通常都只需花費數秒鐘的時間,不用像舊版本需花費數分鐘或數小時。

如果資料分割能根據您經常在硬體組態上執行的查詢類型來正確地設計,分割資料表或索引有可能改善查詢效能。如需詳細資訊,請參閱<提升查詢效能的資料分割設計>。

資料分割通常與 SQL Server 複寫合併使用。使用資料分割可有效減少複寫系統所必須管理的資料和中繼資料量,讓您最佳化交易式複寫和合併式複寫的效能。複寫在每個資料表最多支援 1024 個資料分割。如需詳細資訊,請參閱<複寫資料分割資料表及索引>。

為了提供在真實資料庫中可以套用的資料分割方案範例,在 AdventureWorks2008R2 範例資料庫中提供您可以實作的資料分割案例。此狀況會在 AdventureWorks2008R2 範例資料庫的資料分割中加以說明。

資料分割架構

在 SQL Server 中,在資料庫中的所有資料表和索引均視為已分割,即使它們是由一個資料分割所組成亦然。基本上,資料分割會在資料表和索引的實際架構中形成能加以組織的基本單位。這意謂著資料表和索引的邏輯和實際架構,是由多個資料分割鏡像至單一資料分割資料表和索引的邏輯和實體架構所組成。如需詳細資訊,請參閱<資料表與索引組織>。