在上一篇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的效能問題,下一篇我將為大家示範如何解決。
沒有留言:
張貼留言