在上一篇Partition04PartitionTable搭配Switch刪除資料有提到在PartitionTable刪除資料的方法,而這篇測試主要是測試PartitionTable對於資料異動(Insert)時所帶來的影響。
--1.建立測試的Table,一個為PartitionTable,一個是非PartitionTable
IF OBJECT_ID('ArchivedTable') IS NOT NULL
BEGIN
DROP TABLE ArchivedTable
END
CREATE TABLE [dbo].[ArchivedTable](
[ChineseYM] [int] ,
[tName] [varchar](50) ,
[tOther] [varchar](30)
) ON ChineseYearScheme (ChineseYM);
IF OBJECT_ID('NonPartitionTable') IS NOT NULL
BEGIN
DROP TABLE NonPartitionTable
END
CREATE TABLE [dbo].[NonPartitionTable](
[ChineseYM] [int] ,
[tName] [varchar](50) ,
[tOther] [varchar](30)
) ON [PRIMARY];
--清除CACHE
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
--2.測試新增資料時的效能
INSERT INTO NonPartitionTable
SELECT * FROM [TestTable]
GO
執行結果:花費1分09秒
INSERT INTO ArchivedTable
SELECT * FROM [TestTable]
GO
執行結果:花費2分59秒
結果比較:
PartitionTable | 花費2分59秒 |
非PartitionTable | 花費1分09秒 |
結論:PartitionTable降低了Insert的效能,因為在新增資料時多了判斷資料要歸類到哪一個Partition,所以造成效能上的低落,這是很多人共有的問題。使用Switch可以解決Insert的效能問題,下一篇我將為大家示範如何解決。
沒有留言:
張貼留言