測試在不同情況下啟用資料壓縮對資料查詢的影響,測試的情境如下:
測試資料壓縮與資料量的關聯。
測試資料壓縮與不同SQL效能的影響。
繼Day16實作SQL與DataCompression查詢篇01測試啟用DataCompression(資料壓縮)選項對資料查詢的影響後,本篇測試在不同情況下啟用資料壓縮對資料查詢的影響。
本篇主要測試DataCompression如下:
一、 測試資料壓縮與資料量的關聯:大量資料(約一百多萬筆),
使用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指令的不同而有所變化。