SQL Server 2005引入的表分區技術,讓使用者能夠把資料分散存放到不同的物理磁碟中,提高這些磁碟的平行處理效能以最佳化查詢效能。
SQL Server資料庫表分區操作過程由三個步驟組成:
1. 建立分區函數
2. 建立分區架構
3. 對錶進行分區
下面將對每個步驟進行詳細介紹。
步驟一:建立一個分區函數
此分區函數用於定義你希望SQL Server如何對資料進行分區的參數值([u]how[/u])。這個操作並不涉及任何錶格,只是單純的定義了一項技術來分割資料。
我們可以通過指定每個分區的邊界條件來定義分區。例如,假定我們有一份Customers表,其中包含了關於所有客戶的資訊,以一一對應的客戶編碼(從1到1,000,000)來區分。我們將通過以下的分區函數把這個表分為四個大小相同的分區:
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之間,以此類推。
步驟二:建立一個分區架構
一旦給出描述如何分割資料的分區函數,接著就要建立一個分區架構,用來定義分區位置([u]where[/u])。建立過程非常直截了當,只要將分區串連到指定的檔案組就行了。例如,如果有四個檔案組,組名從"fg1"到"fg4",那麼以下的分區架構就能達到想要的效果:
CREATE PARTITION SCHEME customer_partscheme AS PARTITION customer_partfunc TO (fg1, fg2, fg3, fg4) |
注意,這裡將一個分區函數串連到了該分區架構,但並沒有將分區架構串連到任何資料表。這就是可複用性起作用的地方了。無論有多少資料庫表,我們都可以使用該分區架構(或僅僅是分區函數)。
步驟三:對一個表進行分區
定義好一個分區架構後,就可以著手建立一個分區表了。這是整個分區操作過程中最簡單的一個步驟。只需要在表建立指令中添加一個"ON"語句,用來指定分區架構以及應用該架構的表列。因為分區架構已經識別了分區函數,所以不需要再指定分區函數了。
例如,使用以上的分區架構建立一個客戶表,可以調用以下的Transact-SQL指令:
CREATE TABLE customers (FirstName nvarchar(40), LastName nvarchar(40), CustomerNumber int) ON customer_partscheme (CustomerNumber) |
關於SQL Server的表資料分割函數,你知道上述的相關知識就足夠了。記住!編寫能夠用於多個表的一般的分區函數和分區架構就能夠大大提高可複用性。