程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何運用SQL Server數據表分區優化數據庫

如何運用SQL Server數據表分區優化數據庫

編輯:關於SqlServer
 

你是不是也在苦苦尋求優化自己的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)

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved