18.9. СÑаÑиÑÑика вÑемени вÑполнениÑ
18.9.1. Ð¡Ð±Ð¾Ñ ÑÑаÑиÑÑики по запÑоÑам и индекÑам
ÐÑи паÑамеÑÑÑ ÑпÑавлÑÐµÑ ÑÑнкÑиÑми ÑбоÑа ÑÑаÑиÑÑики на ÑÑовне ÑеÑвеÑа. Ðогда ведÑÑÑÑ ÑÐ±Ð¾Ñ ÑÑаÑиÑÑики, ÑобиÑаемÑе даннÑе можно пÑоÑмоÑÑеÑÑ Ð² ÑемейÑÑве ÑиÑÑемнÑÑ
пÑедÑÑавлений pg_stat и pg_statio. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº Ðлаве 26.
track_activities(boolean)ÐклÑÑÐ°ÐµÑ ÑÐ±Ð¾Ñ Ñведений о ÑекÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ , вÑполнÑÑÑÐ¸Ñ ÑÑ Ð²Ð¾ вÑÐµÑ ÑеанÑÐ°Ñ (в ÑаÑÑноÑÑи, оÑÑлеживаеÑÑÑ Ð²ÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка командÑ). Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²ÐºÐ»ÑÑÑн. ÐамеÑÑÑе, ÑÑо даже когда ÑÐ±Ð¾Ñ Ð²ÐµÐ´ÑÑÑÑ, ÑобÑÐ°Ð½Ð½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð´Ð¾ÑÑÑпна не Ð´Ð»Ñ Ð²ÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑелей, а ÑолÑко Ð´Ð»Ñ ÑÑпеÑполÑзоваÑелей и полÑзоваÑелей, вклÑÑÑннÑÑ Ð² ÑолÑ
pg_read_all_stats. Также полÑзоваÑелÑм доÑÑÑпна инÑоÑмаÑÐ¸Ñ Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ Ð² Ð¸Ñ ÑеанÑÐ°Ñ (вклÑÑÐ°Ñ ÑеанÑÑ Ñолей, в коÑоÑÑе ÑÑи полÑзоваÑели вклÑÑенÑ). ÐоÑÑÐ¾Ð¼Ñ ÑÑо не должно повлеÑÑ ÑиÑки, ÑвÑзаннÑе Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑÑ. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.track_activity_query_size(integer)ÐадаÑÑ Ð¾Ð±ÑÑм памÑÑи, ÑезеÑвиÑÑемой Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑекÑÑа вÑполнÑемой в данной Ð¼Ð¾Ð¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² каждом акÑивном ÑеанÑе, Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ
pg_stat_activity.query. ÐÑли ÑÑо знаÑение задаÑÑÑÑ Ð±ÐµÐ· ÐµÐ´Ð¸Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÑениÑ, оно ÑÑиÑаеÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñм в байÑÐ°Ñ . ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 1024 байÑа. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко пÑи запÑÑке ÑеÑвеÑа.track_counts(boolean)ÐклÑÑÐ°ÐµÑ ÑÐ±Ð¾Ñ ÑÑаÑиÑÑики акÑивноÑÑи в базе даннÑÑ . ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÐºÐ»ÑÑÑн, Ñак как ÑобÑÐ°Ð½Ð½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ ÑÑебÑеÑÑÑ Ð´ÐµÐ¼Ð¾Ð½Ñ Ð°Ð²ÑооÑиÑÑки. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
track_io_timing(boolean)ÐклÑÑÐ°ÐµÑ Ð·Ð°Ð¼ÐµÑ Ð²Ñемени опеÑаÑий ввода-вÑвода. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑклÑÑÑн, Ñак как Ð´Ð»Ñ ÑÑого ÑÑебÑеÑÑÑ Ð¿Ð¾ÑÑоÑнно запÑаÑиваÑÑ ÑекÑÑее вÑÐµÐ¼Ñ Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑемÑ, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð·Ð½Ð°ÑиÑелÑно замедлиÑÑ ÑабоÑÑ Ð½Ð° некоÑоÑÑÑ Ð¿Ð»Ð°ÑÑоÑÐ¼Ð°Ñ . ÐÐ»Ñ Ð¾ÑÐµÐ½Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð´ÐµÑжек замеÑа вÑемени на ваÑей плаÑÑоÑме можно воÑполÑзоваÑÑÑÑ ÑÑилиÑой pg_test_timing. СÑаÑиÑÑÐ¸ÐºÑ Ð²Ð²Ð¾Ð´Ð°-вÑвода можно полÑÑиÑÑ ÑеÑез пÑедÑÑавление
pg_stat_database, в вÑводе EXPLAIN (когда иÑполÑзÑеÑÑÑ Ð¿Ð°ÑамеÑÑBUFFERS) и ÑеÑез пÑедÑÑавление pg_stat_statements. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.track_functions(enum)ÐклÑÑÐ°ÐµÑ Ð¿Ð¾Ð´ÑÑÑÑ Ð²Ñзовов ÑÑнкÑий и вÑемени Ð¸Ñ Ð²ÑполнениÑ. ÐнаÑение
plвклÑÑÐ°ÐµÑ Ð¾ÑÑлеживание ÑолÑко ÑÑнкÑий на пÑоÑедÑÑном ÑзÑке, аallâ Ñакже ÑÑнкÑий на ÑзÑÐºÐ°Ñ SQL и C. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ ânone, Ñо еÑÑÑ ÑÐ±Ð¾Ñ ÑÑаÑиÑÑики по ÑÑнкÑиÑм оÑклÑÑÑн. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.ÐÑимеÑание
ФÑнкÑии на ÑзÑке SQL, доÑÑаÑоÑно пÑоÑÑÑе Ð´Ð»Ñ Â«Ð²Ð½ÐµÐ´ÑениÑ» в вÑзÑваÑÑий запÑоÑ, оÑÑлеживаÑÑÑÑ Ð½Ðµ бÑдÑÑ Ð²Ð½Ðµ завиÑимоÑÑи Ð¾Ñ ÑÑого паÑамеÑÑа.
stats_temp_directory(string)ÐадаÑÑ ÐºÐ°Ñалог, в коÑоÑом бÑдÑÑ Ñ ÑаниÑÑÑÑ Ð²ÑеменнÑе даннÑе ÑÑаÑиÑÑики. ÐÑÐ¾Ñ Ð¿ÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð°Ð±ÑолÑÑнÑм или задаваÑÑÑÑ Ð¾ÑноÑиÑелÑно каÑалога даннÑÑ . ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â
pg_stat_tmp. ÐÑли ÑазмеÑÑиÑÑ Ñелевой каÑалог в Ñайловой ÑиÑÑеме в ÐÐУ, ÑÑо ÑÐ½Ð¸Ð·Ð¸Ñ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° ÑизиÑеÑкое диÑковое Ñ ÑанилиÑе и Ð¼Ð¾Ð¶ÐµÑ ÑвелиÑиÑÑ Ð±ÑÑÑÑодейÑÑвие. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.
18.9.2. ÐониÑоÑинг ÑÑаÑиÑÑики
log_statement_stats(boolean)log_parser_stats(boolean)log_planner_stats(boolean)log_executor_stats(boolean)ÐÑи паÑамеÑÑÑ Ð²ÐºÐ»ÑÑаÑÑ Ð²Ñвод ÑÑаÑиÑÑики по пÑоизводиÑелÑноÑÑи ÑооÑвеÑÑÑвÑÑÑего модÑÐ»Ñ Ð² пÑоÑокол ÑабоÑÑ ÑеÑвеÑа. ÐÑо гÑÑбÑй инÑÑÑÑÐ¼ÐµÐ½Ñ Ð¿ÑоÑилиÑованиÑ, Ð¿Ð¾Ñ Ð¾Ð¶Ð¸Ð¹ на ÑÑнкÑиÑ
getrusage()в опеÑаÑионной ÑиÑÑеме. ÐаÑамеÑÑlog_statement_statsвклÑÑÐ°ÐµÑ Ð²Ñвод обÑей ÑÑаÑиÑÑики по опеÑаÑоÑам, Ñогда как дÑÑгие ÑпÑавлÑÑÑ ÑÑаÑиÑÑикой по модÑлÑм (ÑазбоÑ, планиÑование, вÑполнение). ÐклÑÑиÑÑlog_statement_statsодновÑеменно Ñ Ð¿Ð°ÑамеÑÑами, ÑпÑавлÑÑÑими модÑлÑми, нелÑзÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ñе ÑÑи паÑамеÑÑÑ Ð¾ÑклÑÑенÑ. ÐзмениÑÑ ÑÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.