標籤:style blog color 使用 os 檔案 io 資料
最近對公司產品的日誌資料庫做了一個資料分區,資料庫使用的是sql server 2008,這裡給大家提供一個參考。
需要特別說明的是,很多網上的例子分區欄位都使用的是時間類型的,而這裡由於時間欄位原來設計資料庫使用的是字串類型的。所以這裡的分區欄位使用的是字串類型的,進過我的測試,也能成功。
1:建立分區組:建立了十個分區組
goalter database M2add filegroup [FG1];goalter database M2add filegroup [FG2];goalter database M2add filegroup [FG3];goalter database M2add filegroup [FG4];goalter database M2add filegroup [FG5];goalter database M2add filegroup [FG6];goalter database M2add filegroup [FG7];goalter database M2add filegroup [FG8];goalter database M2add filegroup [FG9];go
2:為分區組指定分區檔案,我把分區檔案放到不同的盤符下面,這樣讀取檔案就會更快,可以並行的讀取檔案。這個也是分區能夠提高效率的原理。
alter database M2addfile(name=FG1_data,filename=‘c:\esafenet\FG1_data.ndf‘,size=10MB) tofilegroup[FG1];alter database M2addfile(name=FG2_data,filename=‘c:\esafenet\FG2_data.ndf‘,size=10MB) tofilegroup[FG2];alter database M2addfile(name=FG3_data,filename=‘d:\esafenet\FG3_data.ndf‘,size=10MB) tofilegroup[FG3];alter database M2addfile(name=FG4_data,filename=‘d:\esafenet\FG4_data.ndf‘,size=10MB) tofilegroup[FG4];alter database M2addfile(name=FG5_data,filename=‘e:\esafenet\FG5_data.ndf‘,size=10MB) tofilegroup[FG5];alter database M2addfile(name=FG6_data,filename=‘d:\esafenet\FG6_data.ndf‘,size=10MB) tofilegroup[FG6];alter database M2addfile(name=FG7_data,filename=‘f:\esafenet\FG7_data.ndf‘,size=10MB) tofilegroup[FG7];alter database M2addfile(name=FG8_data,filename=‘f:\esafenet\FG8_data.ndf‘,size=10MB) tofilegroup[FG8];alter database M2addfile(name=FG9_data,filename=‘c:\esafenet\FG9_data.ndf‘,size=10MB) tofilegroup[FG9];go
3:建立分區函數,這個需要和分區組表匹配
Create partitionfunctionPart_mediasec_func(nvarchar(30))asrange leftfor values(‘2013123123:59:59‘, ‘20141231 23:59:59‘, ‘20151231 23:59:59‘, ‘20161231 23:59:59‘, ‘20171231 23:59:59‘, ‘20181231 23:59:59‘, ‘20191231 23:59:59‘, ‘20201231 23:59:59‘, ‘20211231 23:59:59‘);go
3:建立分區結構,將分區函數和分區組對應起來
Create partitionscheme Part_mediasec_schemeas partitionPart_mediasec_functo([FG1],[FG2],[FG3],[FG4],[FG5],[FG6],[FG7],[FG8],[FG9],[Primary]);go
4:建立分區索引
EXEC sp_helpindexN‘SecureUsbLog‘ --查看原來索引alter tableSecureUsbLog drop constraint PK__SecureUs__7839F64D1F98B2C1gocreate clusteredindex SecureUsbLog_indexonSecureUsbLog(logTime)onPart_mediasec_scheme(logTime);Go
這次分區的特點有兩個:
1:對已經使用的資料庫進行分區,網上大多數例子是建立的分區和資料庫。
2:對字串類型日期進行分區。
這兩點還是很有參考價值的。