你是否在千方百計最佳化SQL Server 資料庫的效能?如果你的資料庫中含有大量的表格,把這些表格分區放入獨立的檔案組可能會讓你受益匪淺。SQL Server 2005引入的表分區技術,讓使用者能夠把資料分散存放到不同的物理磁碟中,提高這些磁碟的平行處理效能以最佳化查詢效能。
SQL Server資料庫表分區操作過程由三個步驟組成:
1. 建立分區函數
2. 建立分區架構
3. 對錶進行分區
下面將對每個步驟進行詳細介紹。
步驟一:建立一個分區函數
此分區函數用於定義你希望SQL Server如何對資料進行分區的參數值([u]how[/u])。這個操作並不涉及任何錶格,只是單純的定義了一項技術來分割資料。
我們可以通過指定每個分區的邊界條件來定義分區。例如,假定我們有一份Customers表,其中包含了關於所有客戶的資訊,以一一對應的客戶編碼(從1到1,000,000)來區分。我們將通過以下的分區函數把這個表分為四個大小相同的分區:
分區建可以為:
text、ntext、image、xml、timestamp、varchar(max)、nvarchar(max)、varbinary(max)、別名資料類型或 CLR 使用者定義資料類型外,所有資料類型均有效。
CREATE PARTITION FUNCTION customer_partfunc (int)
AS RANGE RIGHT
FOR VALUES (250000, 500000, 750000)
這些邊界值定義了四個分區。第一個分區包括所有值小於250,000的資料,第二個分區包括值在250,000到49,999之間的資料。第三個分區包括值在500,000到7499,999之間的資料。所有值大於或等於750,000的資料被歸入第四個分區。
請注意,這裡調用的"RANGE RIGHT"語句表明每個分區邊界值是右界。類似的,如果使用"RANGE LEFT"語句,則上述第一個分區應該包括所有值小於或等於250,000的資料,第二個分區的資料值在250,001到500,000之間,以此類推。