2012-06-06

【系統】PostgreSQL : Query Plan 總是使用較慢的 Bitmap Heap Scan

Finder.png
最近發現 PG 的效能好像有點問題,所以就開始努力檢視看有什麼地方可以改進的,
也問了 Garlic 有沒有什麼建議,然後 Garlic 發現我們的 SQL 在執行時,
Query Plan 有 Bitmap Heap Scan,覺的怪怪的。

所以我就去查查看為什麼會有這個啦。

網路上找到有人在討論這個
Planner selects slow "Bitmap Heap Scan" when "Index Scan" is faster
明明用 Index Scan 比較快,但還是用了比較慢的 Bitmap Heap Scan

照著裡面的說法,我去更改了 PG 的設定檔。
在 QUERY TUNING 的區塊中,將 random_page_cost 從預設值 4.0 改成 0.1
random_page_cost = <num> — random_page_cost controls the way PostgreSQL views non-sequential disk reads. A higher value makes it more likely that a sequential scan will be used over an index scan indicating that your server has very fast disks.

下面是還沒設定 random_page_cost 時的 Query Plan



設定後,Query Plan 就如下圖,變的更精簡也更快了。


而且整體的效能也都變的更好了。






1 comments: