1. 程式人生 > >SQL Server2008及以上 表分區操作詳解

SQL Server2008及以上 表分區操作詳解

value 詳細 分享 指令 pos 分割 分區方案 別了 分區

  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 Server2008及以上 表分區操作詳解