本文將介紹如何利用 SQL Server 2012 新的圖形化介面來建立資料分割。
SQL Server 2012 對於資料庫中的資料儲存提供了建立資料分割(Partition)和壓縮(Compression)的功能,本文將針對資料分割進行簡介。
資料分割資料表是 SQL Server 2005 針對 Enterprise 和 Developer 版所提供的一種用來將大型資料表利用分割的功能,以水平方式拆分成數個分割(Partition),藉此提升資料載入的效能並保有資料集合的完整性,每個分割都是獨立的,假設您是依照年度來進行資料表分割,您就可以規劃針對今年的分割進行 INSERT、UPDATE、DELETE 等資料維護作業,今年以前的分割用來做查詢用途,配合適當的硬體組態來盡可能的提升查詢效能。
資料分割可以套用在資料表或索引,建立的步驟如下:
- 建立資料分割所需的的檔案群組。
- 建立資料分割函數(Partition Function)。
- 建立資料分割配置(Partition Scheme)。
- 使用資料分割配置建立資料表或索引。
由上述步驟看來,建立資料分割相當繁瑣,好在 SQL Server 2012 提供了精靈的方式來簡化您的工作,您只要依照下列步驟,透過圖形化介面就可以輕鬆完成資料分割:
- 由 Object Explorer > Databases > Tables > 於您要進行資料分割的資料表(本文以 Orders 資料表為例)上按滑鼠右鍵 > Storage > Create Partition。
- 於歡迎畫面中直接按 Next 繼續下一步。
- 選擇資料分割的欄位,本文以 ShipRegion 為例,接著按 Next 繼續下一步。
- 輸入 Partition Function 的名稱後,按 Next 繼續下一步。
- 輸入 Partition Scheme 名稱後按 Next 繼續下一步。
- 選擇 Range 以及 Boundary 所要對應的 FileGroup。
- 您可以選擇要產生建立資料分割的 T-SQL敘述,也可以立即執行來建立資料分割,也可以以排程方式來於您想要的時間進行資料分割。
- 您可於Review Summary 視窗中看到整個資料分割的彙整性資料,由下圖可見,SSMS 將會產生針對 Orders 資料表進行資料分割的 T-SQL 敘述。
- 若順利產生 T-SQL 敘述,將看到如下圖的畫面,按 Close 關閉視窗。
- 以下為 SSMS 所產生的 T-SQL:
1: USE [Northwind]2: GO3: BEGIN TRANSACTION4: CREATE PARTITION FUNCTION [MyPartition](nvarchar(15)) AS RANGE LEFT FOR VALUES ()5:
6:
7: CREATE PARTITION SCHEME [MyPartitionScheme] AS PARTITION [MyPartition] TO ([PRIMARY])8:
9:
10: ALTER TABLE [dbo].[Order Details] DROP CONSTRAINT [FK_Order_Details_Orders]11:
12:
13: ALTER TABLE [dbo].[Orders] DROP CONSTRAINT [PK_Orders]14:
15:
16: ALTER TABLE [dbo].[Orders] ADD CONSTRAINT [PK_Orders] PRIMARY KEY NONCLUSTERED17: (
18: [OrderID] ASC19: )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]20:
21:
22: SET ANSI_PADDING ON23:
24: CREATE CLUSTERED INDEX [ClusteredIndex_on_MyPartitionScheme_634728363916468421] ON [dbo].[Orders]25: (
26: [ShipRegion]
27: )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [MyPartitionScheme]([ShipRegion])28:
29:
30: DROP INDEX [ClusteredIndex_on_MyPartitionScheme_634728363916468421] ON [dbo].[Orders]31:
32:
33: ALTER TABLE [dbo].[Order Details] WITH NOCHECK ADD CONSTRAINT [FK_Order_Details_Orders] FOREIGN KEY([OrderID])34: REFERENCES [dbo].[Orders] ([OrderID])35: ALTER TABLE [dbo].[Order Details] CHECK CONSTRAINT [FK_Order_Details_Orders]36:
37:
38:
39:
40: COMMIT TRANSACTION41:
42:
經過上述步驟,您可以很輕鬆的建立資料分割資料表。
【參考資料】