iT邦幫忙

DAY 16
6

SQL SERVER 2008效能監控與最佳化系列 第 16

Day16_實作SQL與DataCompression查詢篇01

本篇主要測試DataCompression對查詢資料的實際影響
實作新增資料時DataCompression對Index的影響。
在Day12_淺談Index與DataCompression有提到啟用DataCompression選項會影響查詢效能。
本篇主要測試DataCompression對查詢資料的實際影響。

步驟一:建立測試資料

IF OBJECT_ID('TransactionHistoryCopy') IS NOT NULL
BEGIN
DROP TABLE TransactionHistoryCopy
END
GO

--建立測試的Table
CREATE TABLE TransactionHistoryCopy(
	[TransactionID] [int] NOT NULL,
	[ProductID] [int] NOT NULL,
	[ReferenceOrderID] [int] NOT NULL,
	[ReferenceOrderLineID] [int] NOT NULL,
	[TransactionDate] [datetime] NOT NULL,
	[TransactionType] [nchar](1) NOT NULL,
	[Quantity] [int] NOT NULL,
	[ActualCost] [money] NOT NULL,
	[ModifiedDate] [datetime] NOT NULL)
GO

--建立測試資料
INSERT INTO TransactionHistoryCopy
SELECT * FROM  AdventureWorks.Production.TransactionHistory
GO 

步驟二:測試資料查詢
資料查詢測試一:不做任何資料壓縮

--清除CACHE
DBCC DROPCLEANBUFFERS
--測試查詢效能
SELECT * FROM TransactionHistoryCopy 

執行結果:

邏輯讀取是790,經過時間是1394ms,CPU時間是46ms
資料查詢測試二:啟用DATA_COMPRESSION=ROW

邏輯讀取是508,經過時間是1376 ms,CPU時間是141 ms

資料查詢測試三:啟用DATA_COMPRESSION=PAGE

邏輯讀取是286 ms,經過時間是1366 ms,CPU時間是266 ms

資料查詢測試結果:

結論:當啟用DATA_COMPRESSION時,在查詢資料的時候會較消耗CPU的資源,但是相對邏輯讀取則減少,整體的經過時間減少了,這表示在這個CASE啟用DATA_COMPRESSION時增加的效能(減少IO)大於使用的資源(CPU運算)。此外我也另外測了不同資料筆數使用DATA_COMPRESSION的情況,測試結果將在下一篇揭曉。


上一篇
Day15_查詢最常使用的Index
下一篇
Day17_實作DataCompression查詢篇02
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言