追溯相當典型的EclipseLink/JPA應用程序中的一些數據庫性能問題。在什麼情況下SELECT可以通過PRIMARY KEY慢?
我看到頻繁的查詢需要25-100ms。這些都是簡單的查詢,只需從主鍵等於某個值的表中選擇所有列即可。他們不應該慢。
我正在查看postgres日誌中的查詢時間,使用log_min_duration_statement,因此這應該消除任何網絡或應用程序開銷。
此查詢不是緩慢的,但它經常使用。
爲什麼選擇主鍵的速度會很慢? 這是特定於postgres還是通用數據庫問題? 我該如何加快速度?一般來說?對於postgres?從PG日誌
樣品查詢:
2010-07-28 08:19:08 PDT - LOG: duration: 61.405 ms statement: EXECUTE <unnamed> [PREPARE: SELECT coded_ele
ment_key, code_system, code_system_label, description, label, code, concept_key, alternate_code_key FROM coded
_element WHERE (coded_element_key = $1)]
表有大約350萬行。
我也對此查詢運行EXPLAIN和EXPLAIN ANALYZE,它只進行索引掃描。
數據集有多大?每一行有多大?查詢是什麼樣的? – 2010-07-28 16:38:13
你有數據庫集羣嗎?發佈前您是否進行過真空全分析?什麼Pg版本? – jmz 2010-07-28 19:08:31
沒有集羣,也不是真正的選項。我還沒有完成真空分析(我會),這是PG 8.1。 – Freiheit 2010-07-28 20:19:58