在Day29_Partition05PartitionTable新增資料效能測試有提到使用PartitionTable會降低新增資料的效能(刪除與更新也會),而在Day28_Partition04PartitionTable搭配Switch刪除資料有示範如何搭配Switch刪除資料,而本篇則要示範在搭配Switch可以新增資料,處理PartitionTable新增資料效能低落的問題。
1.建立測試的Table,一個為PartitionTable,一個是非PartitionTable,要放置轉入資料的Table
--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.新增測試資料
--2.新增測試資料
INSERT INTO InsertTable
SELECT * FROM [TestTable]
WHERE ChineseYM=10008
GO
3.檢查TABLE內容
--3.檢查TABLE內容
SELECT COUNT(*) FROM ArchivedTable
SELECT COUNT(*) FROM InsertTable
執行結果:
4.使用Switch轉入資料到PartitionTable
--4.使用Switch轉入資料到PartitionTable
ALTER TABLE InsertTable SWITCH TO ArchivedTable PARTITION 3;
GO
5.檢查TABLE內容
--5.檢查TABLE內容
SELECT COUNT(*) FROM ArchivedTable
SELECT COUNT(*) FROM InsertTable
執行結果:
結論:在PartitionTable使用一個新的Table並搭配Switch可以處理PartitionTable新增資料時造成效能低落的問題。