2013-08-26 89 views

回答

2

您可以使用PostgreSQL提供的一些鉤子。有趣的掛鉤可以PLPGSQL調試掛鉤(由plpgsql_lintplpgsql debugger使用),或執行掛鉤(由autoexplain使用)

+0

這是細到在實例級別或客戶端使執行計劃,不適合我。我正在尋找一些解決方案,可以從我的功能代碼中完成:1。我想改變我的配置表中的一些值。 2.每次執行時,我的函數都會讀取這個值。一旦標誌開啓:產生執行計劃並且運行時間統計將被生成。 –

+0

這很難,但它是可能的。幾年前,我寫了一個小程序,修改了服務器上的所有程序 - 它僅用於跟蹤http://postgres.cz/wiki/Injekt%C3%A1%C5%BE_zdrojov%C3%A9ho_k%C3 %B3du_PL/pgSQL_funkc%C3%AD_za_%C3%BA%C4%8Delem_z%C3%ADsk%C3%A1n%C3%AD_seznamu_pou%C5%BE%C3%ADvan%C3%BDch_funkc%C3%AD但在現代postgresql中,您可以使用函數跟蹤 - 請參閱http://www.postgresql.org/docs/9.2/static/runtime-config-statistics.html#GUC-TRACK-FUNCTIONS –

+0

我真的很抱歉,我可能錯過了一些東西:它再次是服務器側參數。我正在尋找的東西只能在會話級別觸發執行計劃生成,在這種情況下:從PL/pgSQL代碼。請準確地指出必須寫入的代碼。 –