1. 程式人生 > >SQL Server 2008如何創建分區表,並壓縮數據庫空間

SQL Server 2008如何創建分區表,並壓縮數據庫空間

tempdb -a add 增刪改 https 訪問 lena 區域 lin

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] GO BEGIN TRANSACTION CREATE 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如何創建分區表,並壓縮數據庫空間