Share via


資料分割資料表與索引的計畫指導方針

在分割資料表或索引之前,您必須先計畫建立下列的資料庫物件:

  • 資料分割函數

  • 資料分割結構描述

資料分割函數定義了資料表的資料列或索引如何依據某些資料行 (稱為分割資料行) 的值對應到資料分割集。

資料分割結構描述則會將資料分割函數所指定的每一個資料分割,對應到檔案群組。

計畫資料分割函數

計畫資料分割函數時,有兩個需要考慮的因素:將採用哪個資料行的值來決定如何分割資料表 (稱為分割資料行),以及每一個資料分割之分割資料行的值範圍。此值範圍將決定構成資料表的資料分割數目。一個資料表最多可以有 1,000 個資料分割。

您對於分割資料行以及值範圍有哪些選擇,主要的判斷標準是您的資料可以按邏輯方式分組到什麼程度 (例如按照日期),以及此邏輯群組是否足夠用於管理資料子集。

例如,在 AdventureWorks2008R2 範例資料庫的分割,TransactionHistoryTransactionHistoryArchive 資料表是依據 TransactionDate 欄位分割。每一個資料分割的值範圍都是一個月。TransactionHistory 資料表維護年度最新的交易,而 TransactionHistoryArchive 則維護舊的交易。以此方式分割資料表,舊資料的單月價值便能以每月為基礎,迅速且有效率地從 TransactionHistory 傳送到 TransactionHistoryArchive

如需有關此特定案例的詳細資訊,請參閱<設計資料分割來管理資料的子集>。

其資料類型可以作為索引鍵的任何資料行,都可以指定為分割資料行,但 timestamp 資料類型、Microsoft .NET Framework Common Language Runtime (CLR) 使用者自訂資料類型以及別名資料類型除外。如需詳細資訊,請參閱<建立資料分割資料表及索引>。

計畫資料分割結構描述

在計畫資料分割結構描述時,您必須決定要將資料分割放在哪一個檔案群組或哪些檔案群組上。將資料分割放在不同檔案群組的主要理由是可以確保能夠對資料分割獨立執行備份作業。這是因為您可以對個別檔案群組執行備份。如需詳細資訊,請參閱<在 SQL Server 中備份和還原資料庫>。

重要事項重要事項

如果屬於資料表之任何檔案群組的檔案並未處於 ONLINE 狀態,不論查詢存取哪個資料分割,SQL Server 都不保證能完成存取資料分割資料表的任何查詢。

如需實作此案例的 Transact-SQL 指令碼,請參閱 ReadMe_SlidingWindowReadme_PartitioningScript 範例。如需有關範例的詳細資訊,請參閱<安裝 SQL Server 範例和範例資料庫的考量>。