iT邦幫忙

DAY 17
8

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

Day17_實作DataCompression查詢篇02

測試在不同情況下啟用資料壓縮對資料查詢的影響,測試的情境如下:
測試資料壓縮與資料量的關聯。
測試資料壓縮與不同SQL效能的影響。
繼Day16實作SQL與DataCompression查詢篇01測試啟用DataCompression(資料壓縮)選項對資料查詢的影響後,本篇測試在不同情況下啟用資料壓縮對資料查詢的影響。
本篇主要測試DataCompression如下:

  1. 資料壓縮與資料量的關聯。
  2. 資料壓縮對不同SQL效能的影響。

一、 測試資料壓縮與資料量的關聯:大量資料(約一百多萬筆),
使用SELECT * FROM TableTest測試查詢效能。
不啟用DATA_COMPRESSION

啟用DATA_COMPRESSION=ROW

啟用DATA_COMPRESSION=Page

執行結果整理:

測試一結果:在資料量大的資料表啟用DATA_COMPRESSION,整體的經過時間減少了,與之前測試的結果一樣,但是查詢效能提升不大。

接著在同一個Table我換個方式測試,將測試程式碼改為SELECT COUNT(*) FROM TableTest 。

測試二:大量資料(約一百多萬筆)使用SELECT COUNT(*) FROM TableTest測試查詢效能。

不啟用DATA_COMPRESSION

啟用DATA_COMPRESSION=ROW

啟用DATA_COMPRESSION=Page

執行結果整理:

測試二結果:在資料量大的資料表啟用DATA_COMPRESSION=ROW時,效能提升不大,但啟用DATA_COMPRESSION=Page,查詢時間從9762ms下降到2497ms,整整快了四倍左右(七秒鐘),所以啟用資料壓縮後會因下達的SQL指令不同所提升的效能也有所不同。

接著測試資料壓縮與資料量的關聯:小量資料(約七千多筆) 。
測試三:小量資料(約七千多筆)使用SELECT * FROM TableTest測試查詢效能。
不啟用DATA_COMPRESSION

啟用DATA_COMPRESSION=Page

執行結果整理:

測試三結果:在資料量小的資料表啟用DATA_COMPRESSION= Page時,效能反而下降,所以在資料量小的資料表壓縮資料耗費的CPU成本大於減少的IO成本,故查詢效率反而降低。

結論:綜合Day16實作SQL與DataCompression查詢篇01測試結果,當啟用DATA_COMPRESSION時,會因為資料量的多寡而影響查詢效能,當資料越大提升的效能的效益也越大,反之若資料越小提升的效能的效益也越小。另外增加的效能也會因為SQL指令的不同而有所變化。

鐵人賽全系列


上一篇
Day16_實作SQL與DataCompression查詢篇01
下一篇
Day18_實作DataCompression與資料異動之影響
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言