MSSQL2008分區表

概念就不多說了,網上大把.  

--分區函數的作用是告訴SQL Server,如何將數據進行分區,例如按時間,按年齡,按省.

--而分區方案的作用則是告訴SQL Server,將已分區的數據放在哪個文件組中. 多個硬盤上分開選擇的文件組更好. 

一,用語句

創建,分區方案:

  1. CREATE PARTITION SCHEME YearCustomerFollow AS PARTITION  
  2. YearCustomerFollowFunction TO([PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY]) 

創建,分區函數:

  1. CREATE PARTITION FUNCTION YearCustomerFollowFunction(datetime) 
  2.  AS RANGE RIGHT FOR VALUES('20100101','20110101','20120101','20130101')  

刪除一個分區:

  1. ALTER PARTITION FUNCTION YearCustomerFollowFunction() MERGE RANGE ('20100101')   

添加一個分區:

  1. ALTER PARTITION SCHEME YearCustomerFollow NEXT USED [PRIMARY]     -- 分區方案   
  2. ALTER PARTITION FUNCTION YearCustomerFollowFunction() SPLIT RANGE ('20090101')  -- 分界值  

創建分區:(這裏的語句可以用嚮導生成更方便)

  1. USE [SQL_ZZW] 
  2. GO 
  3. BEGIN TRANSACTION 
  4. CREATE CLUSTERED INDEX [ClusteredIndex_on_YearCustomerFollow_01] ON [dbo].[ZZW_test]  
  5.     [birthyday] 
  6. )WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFFON [YearCustomerFollow]([birthyday]) 
  7.  
  8.  
  9. DROP INDEX [ClusteredIndex_on_YearCustomerFollow_01] ON [dbo].[ZZW_test] WITH ( ONLINE = OFF ) 

 查詢分區錶行數.

  1. select $PARTITION.YearCustomerFollowFunction(birthyday) as 分區編號,count(id) as 記錄數  
  2. from zzw_test  
  3. group by $PARTITION.YearCustomerFollowFunction(birthyday)   

二,用嚮導

1,在要修改的表上右鍵->存儲->創建分區.

2,選擇分區列.

3,創建分區函數或選擇以後的分區函數.

4,創建分區方案或選擇現有分區方案.

5,映射分區,先設置邊界.

6,可以看到邊界值都一下子已經設置好了.

7,創建完成.

查看:表右鍵->存儲-管理壓縮.可以看到各分區的行數,空間.

在控制檯庫->存儲下可以直接看到剛創建的分區方案和分區函數.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章