標籤:drop 資料庫檔案 cti commit 不同的 增刪改 壓縮 source 部分
1、什麼是分區表
分區表在邏輯上是一個表,而物理上是多個表。從使用者角度來看,分區表和普通表是一樣的。使用分區表的主要目的是為改善大型表以及具有多個訪問模式的表的延展性和可管理性。分區表是把資料按設定的標準劃分成地區儲存在不同的檔案組中,使用分區可以快速而有效管理和訪問資料子集。
適合做分區表的情況
? 資料庫中某個表的資料很多,在查詢資料時會明顯感覺到速度很慢,這個時候需要考慮分區表;
? 資料是分段的,如以年份為分隔的資料,對於當年的資料經常進行增刪改查操作,而對於往年的資料幾乎不做操作或只做查詢操作,這種情況可以使用分區表。對資料的操作如果只涉及一部分資料而不是全部資料的情況可以考慮分區表,如果一張表的資料經常使用且不管年份之類的因素經常對其增刪改查操作則最好不要分區。
2、 為什麼要進行表分區 ? 分區表可以從物理上將一個大表分成幾個小表,但是從邏輯上來看還是一個大表。
? 對於具有多個CPU的系統,分區可以對錶的操作通過並行的方式進行,可以提升訪問效能。
3、怎麼進行表分區
建立分區表的步驟分為5步:
(1)建立資料庫檔案組
(2)建立資料庫檔案
(3)建立分區函數
(4)建立資料分割配置
(5)建立分區表
3.1、建立資料庫檔案組
註:資料庫:ZMQGL_TEST;表:dbo.ENTRY_HEAD、dbo.ENTRY_LIST為例
建立檔案組:alter database ZMQGL_TEST add filegroup Group1
文法:alter database <資料名稱> add filegroup <檔案組名稱>
3.2、建立資料庫檔案
建立檔案並添加到檔案組中:
alter database ZMQGL_TEST add file
(name=N‘ById1‘,filename=N‘E:\DB\ZMQGL_test\ById1.ndf‘,size=5Mb,filegrowth=5mb)
to filegroup Group1 文法:alter database <資料庫名稱> add file <資料標識> to filegroup <檔案組名稱>
--<資料標識> (name:檔案名稱,fliename:實體路徑檔案名稱,size:檔案初始大小kb/mb/gb/tb,filegrowth:檔案自動增量kb/mb/gb/tb/%,maxsize:檔案可以增加到的最大大小kb/mb/gb/tb/unlimited)
3.3、建立分區函數、建立資料分割配置、建立分區表
右鍵到要分區的表--- >> 儲存 --- >> 建立分區 --- >>顯示嚮導視圖 --- >> 下一步 --- >> 下一步。。
點擊“下一步”,最後點擊完成會產生分區函數和資料分割配置的指令碼,如下:USE [ZMQGL_TEST]GOBEGIN TRANSACTIONCREATE PARTITION FUNCTION [FQ_HS](datetime2(3)) AS RANGE LEFT FOR VALUES (N‘2015-12-31T23:59:59.999‘, N‘2016-12-31T23:59:59.999‘)CREATE PARTITION SCHEME [FQ_FA] AS PARTITION [FQ_HS] TO ([PRIMARY], [Group1], [Group2])CREATE CLUSTERED INDEX [ClusteredIndex_on_FQ_FA_636040955802353043] ON [dbo].[ENTRY_HEAD] ( [D_DATE])WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [FQ_FA]([D_DATE])DROP INDEX [ClusteredIndex_on_FQ_FA_636040955802353043] ON [dbo].[ENTRY_HEAD] WITH ( ONLINE = OFF )COMMIT TRANSACTION 直接F5運行即可。
4、新增分區表【新增分區邊界】 1、先新增檔案組和檔案,例如:Group3,並建立好對應關係
2、新增邊界值
ALTER PARTITION SCHEME FQ_FA NEXT USED [Group3]
‘
文法“:
ALTER PARTITION SCHEME <資料分割配置> NEXT USED <檔案組>
ALTER PARTITION FUNCTION <分區函數> SPLIT RANGE(<邊界值>)
5、刪除(合并)分區
刪除邊界值為‘2017-12-31 23:59:59.999‘的分區
ALTER PARTITION FUNCTION FQ_HS() MERGE RANGE (‘2017-12-31 23:59:59.999‘)
與之対應的資料分割配置也發生了變化。
SQL Server 2008如何建立分區表,並壓縮資料庫空間