2011年11月7日 星期一

Partition06PartitionTable搭配Switch新增資料

在上一篇Partition05PartitionTable新增資料效能測試有提到使用PartitionTable會降低新增資料的效能(刪除與更新也會),之前在Partition04PartitionTable搭配Switch刪除資料有示範如何搭配Switch刪除資料,而本篇則要示範在搭配Switch可以新增資料,處理PartitionTable新增資料效能低落的問題。

--1.建立測試的Table,一個為PartitionTable,一個是非PartitionTable,要放置轉入資料的Table
IF OBJECT_ID('InsertTable') IS NOT NULL
BEGIN DROP TABLE InsertTable END

CREATE TABLE InsertTable
(
ChineseYM INT ,
tName varchar(50) ,
tOther [varchar](30)
)
ON [PRIMARY];
GO

ALTER TABLE InsertTable
ADD CONSTRAINT [CK_ChineseYM] CHECK (ChineseYM >= 10008 AND [ChineseYM]  IS NOT NULL);
GO
ALTER TABLE [dbo].[InsertTable] CHECK CONSTRAINT [CK_ChineseYM]
GO

--2.新增測試資料
INSERT INTO InsertTable
SELECT  * FROM  [TestTable]
WHERE ChineseYM=10008
GO

--3.檢查TABLE內容
SELECT COUNT(*) FROM ArchivedTable
SELECT COUNT(*) FROM InsertTable
執行結果:

--4.使用Switch轉入資料到PartitionTable
ALTER TABLE InsertTable  SWITCH TO  ArchivedTable PARTITION 3;
GO

--5.檢查TABLE內容
SELECT COUNT(*) FROM ArchivedTable
SELECT COUNT(*) FROM InsertTable
執行結果:

結論:在PartitionTable使用一個新的Table並搭配Switch可以處理PartitionTable新增資料時造成效能低落的問題。

沒有留言:

張貼留言