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

一步步教你建立SQL數據庫的表分區

編輯:關於SqlServer

直接上步驟:

1)新建一個數據庫

 

2)添加幾個文件組

3)回到“常規”選項卡,添加數據庫文件

看到用紅色框框起來的地方沒?上一步中建立的文件組在這裡就用上了。再看後面的路徑,我把每一個文件都單獨放在不同的磁盤上,而且最好都是單獨的放在不同的物理盤上,這樣會大大提高數據的性能。 點擊“確定”數據庫就算創建完成了。

4)接下來要做的是建立一個分區行數,SQL語句如下:大家學習的時候最好不要直接COPY,動手把它抄一遍也好。

create partition function PartFuncForExample(Datetime) 
as Range Right for Value('20000101','20010101','20020101','20030101') 

這裡我准備用表中的某個時間字段作為分區的條件,當然你也可以用其他的,比如INT之類,只要好分段的都可以。

這裡注意 Right 關鍵字,意思就是當記錄的時間(在下面會被指到表的某個字段)大於等於20000101的時候,數據會被分到下一個區間,比如2000年1月1號之前的數據會被分到一區,包含2000年1月1號和之後的數據會被分到二區,以此類推。Right 也可以使用Left替代,意思同上類似。另外,上面我定義了四個分割點,這四個分割點是根據我們剛剛創建的文件組來決定的。四個分割點就能產生5個區間段,我們把每個區間段的數據存入一個文件組。

正確執行上述語句後你可以在數據裡找到以“PartFuncForExample”命名的分區函數,如下圖

5)把分區函數建立好以後,我們再來建立分區方案。目的是為了把分區函數產生的分區映射到文件數據組裡。分區函數是告訴數據庫如何分區數據,而分區方案是告訴數據庫如何把已分區的數據存到哪個文件組裡。

下面我來創建分區方案。

Create Partition Scheme PartSchForExample //創建一個分區方案+分區方案名稱 
As Partition PartFuncForExample//目的為了 分區函數PartFuncForExample 
To 
( 
PRIMARY, //文件組名 
Partition1, //文件組名 
Partition2, //文件組名 
Partition3, //文件組名 
Partition4 //文件組名 
) 

正確執行後能在分區方案中看到,如下圖

6)馬上就快要大公告成了,下面我們來建立要分區存儲的表,該表的數據理論上應該是非常非常多的,百萬級別的記錄以上而且基本上是不更新的。要不然建立分區存儲就沒多大意義了。

Create Table PartitionTable( 
[ID] [int] Identity(1,1) not null, 
[Name] [nvarchar](50) not null, 
[LoginDate] [DateTime] not null //用來進行分區 
) On PartSchForExample([LoginDate]) //上面提到的指定分區字段就是這裡指定的了。 

執行這段SQL,沒報錯的話就大功告成了,呵呵.

總結:

分區存儲提高了數據庫的性能,被分區存儲的數據物理上是多個文件,但邏輯上任然是一個表,對表的任何操作都跟沒分區之前一樣。插入、刪除、查詢、更新等操作的時候,數據庫會自動為你找到對應的分區,然後執行操作。另外的話 把多個數據文件、日志文件都分別部署在不同的高性能物理盤上,也能大大提高性能.

當然,分區存儲的好處還有很多我不知道的,歡迎大家一起探討!

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