直接上步驟:
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,沒報錯的話就大功告成了,呵呵.
總結:
分區存儲提高了數據庫的性能,被分區存儲的數據物理上是多個文件,但邏輯上任然是一個表,對表的任何操作都跟沒分區之前一樣。插入、刪除、查詢、更新等操作的時候,數據庫會自動為你找到對應的分區,然後執行操作。另外的話 把多個數據文件、日志文件都分別部署在不同的高性能物理盤上,也能大大提高性能.
當然,分區存儲的好處還有很多我不知道的,歡迎大家一起探討!