你是不是也在苦苦尋求優化自己的SQL Server數據庫的方法?如果你的數據庫裡有不少非常大的表格,分區功能能夠幫到你很大的忙,因為它可以把這些大表格分割成獨立文件組。這個技術可以讓你把數據分布在不同的物理磁盤中,並通過調節它們的並行性能來最優化你的查詢性能。
對SQL Server數據表進行分區的過程分為三個步驟:
1)建立分區函數
2)建立分區方案
3)對表格進行分區
第一個步驟:建立分區函數
分區函數定義[u]how[/u],即你想要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之間的記錄,如此類推。
第二個步驟:建立分區方案
一旦建立完定義如何對數據進行分區的分區函數之後,下一步就是建立一個分區方案,定義[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)