你是不是也在苦苦尋求最佳化自己的SQL Server資料庫的方法?如果你的資料庫裡有不少非常大的表格,資料分割函數能夠幫到你很大的忙,因為它可以把這些大表格分割成獨立檔案組。這個技術可以讓你把資料分布在不同的物理磁碟中,並通過調節它們的並行效能來最佳化你的查詢效能。
對SQL Server資料表進行分區的過程分為三個步驟:
1)建立分區函數
2)建立資料分割配置
3)對錶格進行分區
分區函數定義how,即你想要SQL Server如何對資料進行分區。這裡就不以某一個表格作為例子,而是總體概括分割資料的技術。
分區是通過指定每個分區的分割界線實現的。例如,假定我們有一個Customers表格,裡麵包含了企業所有的客戶的資訊,客戶資訊以唯一的客戶號進行辨識,客戶號從1到1000000。我們可以運用以下的分區函數(這裡稱之為customer_Partfunc)把這個表格平均分為四個分區:
CREATE PARTITION FUNCTION customer_partfunc(int)
AS RANGE RIGHT
FOR VALUES(250000,500000,750000)
這些分割界線指定了四個分區。第一個分區包含所有值小於250000的記錄。第二個分區包含所有值在250000和499999之間的記錄。而第三個分區包含所有值在500000和749999之間的記錄。其他所有大於或等於750000的記錄都包含在第四個分區裡。
注意這個例子中使用了“RANGE RIGHT”從句。這說明分界值是在分區的右邊。同樣,如果使用的是“RANGE LEFT”從句,那麼第一個分區就會包含所有值小於或等於250000的記錄;第二個分區就會包含所有值在250001和500000之間的記錄,如此類推。
一旦建立完定義如何對資料進行分區的分區函數之後,下一步就是建立一個資料分割配置,定義where,即你想在哪裡對資料進行分區。這是一個很直接明了的過程,例如,如果我有四個檔案組,名稱分別從“fg1”到“fg4”,那麼就可以使用以下資料分割配置:
CREATE PARTITION SCHEME customer_partscheme
AS PARTITION customer_partfunc
TO(fg1,fg2,fg3,fg4)
注意我們現在把一個分區函數串連到了資料分割配置,但是我們還沒有把資料分割配置串連到任何具體的資料庫表格。這就是重複使用功能發揮功能的時候。我們可以通過這個功能把資料分割配置(或者只是分區函數)用於資料庫表格的任何資料上。
建立好資料分割配置之後,就可以開始對錶格進行分區了。這是最簡單的一個步驟,只需要在表格建立語句中添加“ON”從句,指定表格資料分割配置和要應用該資料分割配置的表列。你不需要指定分區函數,因為資料分割配置已經定義了分區函數。
舉個例子,假設你想要用上述的資料分割配置來建立一個客戶表格,你需要使用以下Transact-SQL語句:
CREATE TABLE customers(FirstNamenvarchar(40),LastNamenvarchar(40),CustomerNumberint)
ON customer_partscheme(CustomerNumber)