SQL Server表分割槽操作詳解

weixin_30488085發表於2009-02-24
SQL Server 2005引入的表分割槽技術,讓使用者能夠把資料分散存放到不同的物理磁碟中,提高這些磁碟的並行處理效能以優化查詢效能……

  【IT專家網獨家】你是否在千方百計優化SQL Server 資料庫的效能?如果你的資料庫中含有大量的表格,把這些表格分割槽放入獨立的檔案組可能會讓你受益匪淺。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的表分割槽功能,你知道上述的相關知識就足夠了。記住!編寫能夠用於多個表的一般的分割槽函式和分割槽架構就能夠大大提高可複用性。

轉載於:https://www.cnblogs.com/cxd4321/archive/2008/06/26/1230402.html

相關文章