我試圖改善長時間運行的plpgsql存儲過程的性能,但我不知道有什麼(如果有的話)分析工具可用。任何人都可以提供關於如何進行分析這樣的程序的建議嗎?如何配置plpgsql程序
6
A
回答
5
從包含clock_timestamp()的程序中提取一些notices以查看數據庫在何處花費時間。儘可能簡化程序。
你能告訴我們一個例子嗎?
1
首先,您可以打開logging of all statements到Postgres日誌文件中。日誌將包含每個語句的運行時間。這樣您可以識別最慢的查詢並嘗試優化它們。
但讀你的評論弗蘭克的帖子我猜測循環是你的問題。嘗試擺脫循環,並在單個查詢中做所有事情。讀取大量行的一條語句通常比僅讀取幾行的很多語句更有效。
1
嘗試使用pg_stat_statements擴展名(http://www.postgresql.org/docs/9.2/static/pgstatstatements.html)。 它可以顯示所有語句的呼叫號碼和總呼叫時間(包括plpgsql過程中的子語句)。
2
目前,我們正在尋找一個更好的回答這個問題,和整個這個工具都有所涉獵: http://www.openscg.com/2015/02/postgresql-plpgsql-profiler/ 在託管: https://bitbucket.org/openscg/plprofiler
它聲稱給你你正在尋找的東西,包括總時間花在函數的每一行上。我們還沒有進一步調查,但根據作者的說法,我們很樂觀。
相關問題
- 1. 如何配置多線程程序?
- 2. 如何配置一個程序範圍
- 3. 如何配置Akka應用程序?
- 4. 如何使用配置程序
- 5. 如何配置的IntelliJ在JavaScript程序
- 6. 如何動態配置應用程序?
- 7. 如何從checkstyle配置生成Eclipse格式化程序配置?
- 8. 如何配置Facebook的子應用程序的應用程序?
- 9. 如何配置ParsleyJs遠程
- 10. springboot應用程序:如何設置配置文件propery與spel?
- 11. 如何存儲Web應用程序的配置設置?
- 12. 如何設置OSX屏幕保護程序配置表?
- 13. 如何配置我的Facebook應用程序的設置?
- 14. 如何在運行時將程序重置爲默認配置?
- 15. 多配置支持 - 如何設置應用程序ID?
- 16. 無法行數分配給變量PLPGSQL
- 17. Vagrant何時運行配置程序?
- 18. 如何配置匯合kafka休息序列化程序?
- 19. Android應用程序配置
- 20. Facebook應用程序配置
- 21. 應用程序配置(app.config)
- 22. Windsor安裝程序配置
- 23. 配置Java應用程序
- 24. 通過程序配置ServiceNow
- 25. 應用程序配置
- 26. 應用程序配置asp.net
- 27. 應用程序配置(Spring?)
- 28. 應用程序配置
- 29. 如何配置遠程運行的無頭Java應用程序?
- 30. Spring webflow:如何配置多個流程執行程序
我希望有一種方法不需要改變程序,但是這可能比沒有好。 http://www.depesz.com/index.php/2010/03/18/profiling-stored-proceduresfunctions/記錄了一個類似的程序,但是獲得可用數據似乎過於複雜。該過程是一組用於爲Solr數據導入處理程序查詢創建文檔的嵌套循環,如果這有助於任何(可能不是)。 – Aneurysm9 2011-02-08 17:15:40