2011年11月7日 星期一

Partition05PartitionTable新增資料效能測試


在上一篇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

執行結果:花費109

INSERT INTO ArchivedTable
SELECT  * FROM  [TestTable]
GO
執行結果:花費259



結果比較:
PartitionTable
花費259
PartitionTable
花費109

結論:PartitionTable降低了Insert的效能,因為在新增資料時多了判斷資料要歸類到哪一個Partition,所以造成效能上的低落,這是很多人共有的問題。使用Switch可以解決Insert的效能問題,下一篇我將為大家示範如何解決。

沒有留言:

張貼留言