G.2. pgpro_stats â ÑÐ±Ð¾Ñ ÑÑаÑиÑÑики планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð¾Ð±ÑабаÑÑваемÑÑ ÑеÑвеÑом SQL-опеÑаÑоÑов #
- G.2.1. ÐгÑаниÑениÑ
- G.2.2. УÑÑановка и подгоÑовка
- G.2.3. ÐÑполÑзование
- G.2.4. ÐÑедÑÑавлениÑ
- G.2.5. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
- G.2.6. ФÑнкÑии
- G.2.7. ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии
- G.2.8. ТÑаÑÑиÑовка ÑеанÑов пÑиложений
- G.2.9. ÐеÑÑики аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа
- G.2.10. ÐвÑоÑÑ
- G.2.2. УÑÑановка и подгоÑовка
РаÑÑиÑение pgpro_stats пÑедоÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи Ð´Ð»Ñ ÑбоÑа ÑÑаÑиÑÑики планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²ÑеÑ
обÑабаÑÑваемÑÑ
ÑеÑвеÑом SQL-опеÑаÑоÑов. Ðно оÑновано на модÑле pg_stat_statements и ÑеализÑÐµÑ ÑледÑÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑÑнкÑионалÑноÑÑÑ:
Ð¡Ð¾Ñ Ñанение помимо ÑекÑÑа запÑоÑов ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð¿Ð»Ð°Ð½Ð¾Ð² запÑоÑов.
ÐозможноÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑаÑÑоÑÑ ÑбоÑа ÑÑаÑиÑÑики Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии ÑвÑзаннÑÑ Ñ Ð½Ð¸Ð¼ издеÑжек.
ÐÑÑиÑление ÑÑаÑиÑÑики по ÑобÑÑиÑм Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²ÑполнÑемÑÑ Ð·Ð°Ð¿ÑоÑов.
ÐодÑÑÑÑ ÑÑаÑиÑÑики иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑов пÑи планиÑовании и вÑполнении опеÑаÑоÑов.
ÐодÑÑÑÑ ÑÑаÑиÑÑики аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа.
ÐÑÑиÑление дополниÑелÑной ÑÑаÑиÑÑики аÑÑ Ð¸Ð²Ð°ÑоÑа.
ÐÑедоÑÑавление возможноÑÑи пÑоÑмоÑÑа ÑÑаÑиÑÑики по оÑиÑÑке баз даннÑÑ , ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ индекÑов, ÑобÑаннÑÑ ÑдÑом ÑиÑÑемÑ.
ТÑаÑÑиÑовка ÑеанÑов пÑиложений.
Создание пÑедÑÑавлений, ÑмÑлиÑÑÑÑÐ¸Ñ Ð´ÑÑгие ÑаÑÑиÑениÑ.
ÐÑимеÑание
Ðо вÑÐµÐ¼Ñ Ð¾ÑÑановки ÑеÑвеÑа ÑаÑÑиÑение pgpro_stats вÑгÑÑÐ¶Ð°ÐµÑ ÑобÑаннÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð² два Ñайла на диÑке в ÑоÑмаÑе, коÑоÑÑй завиÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва и поÑÑдка ÑÑолбÑов в пÑедÑÑавлениÑÑ
pgpro_stats_statements и pgpro_stats_totals. ÐÑли ÑÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð»ÑÑ Ð² новой веÑÑии pgpro_stats, Ñо Ñанее ÑоÑ
ÑанÑннÑе ÑÑаÑиÑÑики не бÑдÑÑ Ð¿ÑоÑиÑÐ°Ð½Ñ Ð¿Ñи пеÑвом пеÑезапÑÑке ÑеÑвеÑа поÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑаÑÑиÑениÑ, и в жÑÑнал бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸Ñана оÑибка:
LOG: pgpro_stats: could not load statements data file of obsolete format "pg_stat/pgpro_stats.stat"
или
LOG: pgpro_stats: could not load statements data file of obsolete format "pg_stat/pgpro_stats_totals.stat"
СодеÑжимое Ñайлов бÑÐ´ÐµÑ Ð¿ÑоигноÑиÑовано, а ÑооÑвеÑÑÑвÑÑÑие ÑÑаÑиÑÑики â обнÑленÑ. ЧÑÐ¾Ð±Ñ ÑзнаÑÑ, изменилÑÑ Ð»Ð¸ ÑоÑмаÑ, ознакомÑÑеÑÑ Ñ ÐамеÑаниÑми к вÑпÑÑкам Ð´Ð»Ñ ÑÑÑанавливаемой веÑÑии pgpro_stats. ЧÑÐ¾Ð±Ñ ÑÐ¾Ñ ÑаниÑÑ Ñанее ÑобÑаннÑе ÑÑаÑиÑÑики, вÑгÑÑзиÑе Ð¸Ñ Ð² CSV-ÑÐ°Ð¹Ð»Ñ Ð¿ÐµÑед обновлением.
ÐпиÑание Ñипов и пÑедÑÑавлений, оÑобÑажаÑÑÐ¸Ñ ÑÑаÑиÑÑÐ¸ÐºÑ Ð°Ð½Ð½ÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑей, а Ñакже обÑÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± ÑÑой ÑÑаÑиÑÑике пÑиводиÑÑÑ Ð² Ñазделе ÐодÑаздел G.2.9.
G.2.1. ÐгÑаниÑÐµÐ½Ð¸Ñ #
ÐÑи некоÑоÑÑÑ Ð¾Ð±ÑÑоÑÑелÑÑÑваÑ
pgpro_statsÐ¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑопоÑÑавиÑÑ Ð¿Ð°ÑамеÑÑÑ Ð² ÑекÑÑе запÑоÑа Ñ Ñеми же паÑамеÑÑами в ÑооÑвеÑÑÑвÑÑÑем плане запÑоÑа.ÐекоÑоÑÑе запÑоÑÑ SPI в ÑÑаÑиÑÑике не ÑÑиÑÑваÑÑÑÑ.
ТекÑÑÑ Ð¸ Ð¿Ð»Ð°Ð½Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ Ð·Ð°Ð¿ÑоÑов SPI не ноÑмализованÑ.
РаÑÑиÑение
pgpro_statsнеÑовмеÑÑимо Ñ pg_stat_statements, а Ñакже дÑÑгими ÑаÑÑиÑениÑми, вÑÑÑаиваÑÑими Ñвои обÑабоÑÑики в анализаÑоÑ, планиÑовÑик или иÑполниÑÐµÐ»Ñ Ð¸ влиÑÑÑими на ÑазбоÑ, планиÑование или вÑполнение запÑоÑов. Ðолее Ñого, еÑли иpgpro_stats, и pg_stat_statements вклÑÑÐµÐ½Ñ Ð² ÑпиÑокshared_preload_libraries, ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ Ð½Ðµ ÑÑаÑÑÑеÑ. Также обÑаÑиÑе внимание, ÑÑо Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¾ÐºÐ¾Ð½ÑаÑелÑной веÑÑии запÑоÑов и планов библиоÑекаpgpro_statsдолжна ÑказÑваÑÑÑÑ Ð¿Ð¾Ñледней в ÑпиÑкеshared_preload_libraries, но еÑÑÑ ÑаÑÑиÑениÑ, напÑимеÑ,pg_pathman, коÑоÑÑе ÑабоÑаÑÑ, ÑолÑко еÑли Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñека Ñказана поÑледней.pgpro_statsÐ¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑабоÑаÑÑ ÐºÐ¾ÑÑекÑно Ñо ÑÑоÑонними ÑаÑÑиÑениÑми, добавлÑÑÑими в Ð¿Ð»Ð°Ð½Ñ ÑзлÑCustomScanиForeignScan.
G.2.2. УÑÑановка и подгоÑовка #
РаÑÑиÑение pgpro_stats поÑÑавлÑеÑÑÑ Ð²Ð¼ÐµÑÑе Ñ Postgres Pro Standard в виде оÑделÑного пакеÑа pgpro-stats-std-16 (подÑобнÑе инÑÑÑÑкÑии по ÑÑÑановке пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð² Ðлаве 16). УÑÑановив pgpro_stats, вÑполниÑе ÑледÑÑÑие дейÑÑвиÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð´Ð³Ð¾ÑовиÑÑ pgpro_stats к ÑабоÑе:
ÐобавÑÑе
pgpro_statsв паÑамеÑÑ shared_preload_libraries в Ñайлеpostgresql.conf:shared_preload_libraries = 'pgpro_stats'
ÐеÑезапÑÑÑиÑе Postgres Pro Standard, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑÑÑпили в ÑилÑ.
Ðогда ÑеÑÐ²ÐµÑ Ð¿ÐµÑезапÑÑÑиÑÑÑ,
pgpro_statsнаÑнÑÑ ÑобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ вÑем базам даннÑÑ Ð² клаÑÑеÑе. ÐÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе изменÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ ÑбоÑа или оÑклÑÑиÑÑ ÐµÐ³Ð¾, воÑполÑзовавÑиÑÑ Ð¿Ð°ÑамеÑÑами конÑигÑÑаÑииpgpro_stats.ÐбÑаÑаÑÑÑÑ Ðº ÑобиÑаемой ÑÑаÑиÑÑике Ð²Ñ ÑможеÑе поÑле Ñого, как ÑоздадиÑе ÑаÑÑиÑение
pgpro_stats:CREATE EXTENSION pgpro_stats;
ÐÑоме Ñого, необÑ
одимо вклÑÑиÑÑ Ð²ÑÑиÑление иденÑиÑикаÑоÑа запÑоÑа, ÑÑÐ¾Ð±Ñ ÑаÑÑиÑение pgpro_stats бÑло акÑивно. ÐÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð°Ð²ÑомаÑиÑеÑки, еÑли Ð´Ð»Ñ compute_query_id задано знаÑение auto или on, или загÑÑжен лÑбой ÑÑоÑонний модÑлÑ, вÑÑиÑлÑÑÑий иденÑиÑикаÑоÑÑ Ð·Ð°Ð¿ÑоÑов.
G.2.3. ÐÑполÑзование #
G.2.3.1. Ð¡Ð±Ð¾Ñ ÑÑаÑиÑÑики по опеÑаÑоÑам запÑоÑов и планам #
ÐоÑле Ñого как ÑаÑÑиÑение pgpro_stats бÑÐ´ÐµÑ ÑÑÑановлено, оно наÑнÑÑ ÑобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ вÑполнÑемÑм опеÑаÑоÑам. СобиÑаемÑе даннÑе во многом пеÑеÑекаÑÑÑÑ Ñ Ñеми, ÑÑо ÑобиÑÐ°ÐµÑ pg_stat_statements, но Ñакже вклÑÑаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ планаÑ
запÑоÑов и ÑобÑÑиÑÑ
Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñипа запÑоÑа. ÐолÑÑÐµÐ½Ð½Ð°Ñ ÑÑаÑиÑÑика ÑоÑ
ÑанÑеÑÑÑ Ð² колÑÑевом бÑÑеÑе в памÑÑи, а пÑоÑиÑаÑÑ ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑеÑез пÑедÑÑавление pgpro_stats_statements.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ pgpro_stats ÑобиÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ вÑем опеÑаÑоÑам, Ñ ÑÑÑÑом знаÑений паÑамеÑÑов pgpro_stats.track и pgpro_stats.track_utility. Ðднако в ÑелÑÑ
опÑимизаÑии пÑоизводиÑелÑноÑÑи Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑменÑÑиÑÑ ÑаÑÑоÑÑ Ð²ÑбоÑки, воÑполÑзовавÑиÑÑ Ð¿Ð°ÑамеÑÑом pgpro_stats.query_sample_rate, и Ñогда pgpro_stats Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑÑаÑиÑÑики бÑÐ´ÐµÑ ÑлÑÑайнÑм обÑазом вÑбиÑаÑÑ Ð·Ð°Ð´Ð°Ð½Ð½ÑÑ Ð´Ð¾Ð»Ñ Ð·Ð°Ð¿ÑоÑов из обÑего колиÑеÑÑва.
ÐÐ»Ñ ÑбоÑа ÑÑаÑиÑÑики по ÑобÑÑиÑм Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ pgpro_stats пÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ Ð²ÑбоÑки Ñ Ð¾Ð¿ÑеделÑнной пеÑиодиÑноÑÑÑÑ. ÐÑа пеÑиодиÑноÑÑÑ Ð·Ð°Ð´Ð°ÑÑÑÑ Ð¿Ð°ÑамеÑÑом pgpro_stats.profile_period и по ÑмолÑÐ°Ð½Ð¸Ñ Ñавна 10 мÑ. ÐÑли вÑбоÑка показÑваеÑ, ÑÑо пÑоÑеÑÑ Ð½Ð°Ñ
одиÑÑÑ Ð² ÑоÑÑоÑнии ожиданиÑ, к обÑей длиÑелÑноÑÑи Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ ÑобÑÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑеÑÑÑ Ð·Ð½Ð°Ñение pgpro_stats.profile_period. Таким обÑазом, оÑенка длиÑелÑноÑÑи Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾ÑÑаÑÑÑÑ ÐºÐ¾ÑÑекÑной даже пÑи изменениÑÑ
знаÑÐµÐ½Ð¸Ñ pgpro_stats.profile_period. ÐÑли Ð²Ð°Ñ Ð½Ðµ инÑеÑеÑÑÐµÑ ÑÑаÑиÑÑика по ÑобÑÑиÑм ожиданиÑ, ÑÐ±Ð¾Ñ ÑÑой инÑоÑмаÑии можно оÑклÑÑиÑÑ, ÑÑÑановив Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа pgpro_stats.enable_profile знаÑение false.
ÐоказаÑели pgpro_stats_statements.plans и pgpro_stats_statements.calls не обÑзаÑелÑно Ð´Ð¾Ð»Ð¶Ð½Ñ ÑовпадаÑÑ, Ñак как ÑÑаÑиÑÑика планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑеÑÑÑ Ð² конÑе ÑооÑвеÑÑÑвÑÑÑей ÑÐ°Ð·Ñ Ð¸ ÑолÑко пÑи ÑÑпеÑном завеÑÑении ÑÑой ÑазÑ. ÐапÑимеÑ, еÑли Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑа ÑÑпеÑно вÑполнилоÑÑ Ð¿Ð»Ð°Ð½Ð¸Ñование, но во вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑоизоÑла оÑибка, измениÑÑÑ ÑолÑко ÑÑаÑиÑÑика планиÑованиÑ. ÐÑли же планиÑование пÑопÑÑкаеÑÑÑ Ð¿Ð¾ пÑиÑине иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑиÑованного плана, ÑвелиÑиваеÑÑÑ ÑолÑко ÑÑÑÑÑик вÑполнениÑ.
ÐапÑимеÑ, давайÑе Ñоздадим ÑаблиÑÑ Ñо ÑлÑÑайнÑми даннÑми и поÑÑÑоим в ней индекÑ:
CREATE TABLE test AS (SELECT i, random() x FROM generate_series(1,1000000) i); CREATE INDEX test_x_idx ON test (x);
ÐÑполниÑе неÑколÑко Ñаз ÑледÑÑÑий запÑÐ¾Ñ Ñ ÑазлиÑнÑми знаÑениÑми :x_min и :x_max:
select * from test where x >= :x_min and x <= :x_max;
ÐоÑле ÑÑого ÑобÑÐ°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика должна поÑвиÑÑÑÑ Ð² пÑедÑÑавлении pgpro_stats_statements:
SELECT queryid, query, planid, plan, wait_stats FROM pgpro_stats_statements WHERE query LIKE 'select * from test where%';
-[ RECORD 1 ]----------------------------------------------------------------------------------------------------------
queryid | 1109491335754870054
query | select * from test where x >= $1 and x <= $2
planid | 8287793242828473388
plan | Gather
| Output: i, x
| Workers Planned: 2
| -> Parallel Seq Scan on public.test
| Output: i, x
| Filter: ((test.x >= $3) AND (test.x <= $4))
|
wait_stats | {"IO": {"DataFileRead": 10}, "IPC": {"BgWorkerShutdown": 10}, "Total": {"IO": 10, "IPC": 10, "Total": 20}}
-[ RECORD 2 ]----------------------------------------------------------------------------------------------------------
queryid | 1109491335754870054
query | select * from test where x >= $1 and x <= $2
planid | -9045072158333552619
plan | Bitmap Heap Scan on public.test
| Output: i, x
| Recheck Cond: ((test.x >= $3) AND (test.x <= $4))
| -> Bitmap Index Scan on test_x_idx
| Index Cond: ((test.x >= $5) AND (test.x <= $6))
|
wait_stats | {"IO": {"DataFileRead": 40}, "Total": {"IO": 40, "Total": 40}}
-[ RECORD 3 ]----------------------------------------------------------------------------------------------------------
queryid | 1109491335754870054
query | select * from test where x >= $1 and x <= $2
planid | -1062789671372193287
plan | Seq Scan on public.test
| Output: i, x
| Filter: ((test.x >= $3) AND (test.x <= $4))
|
wait_stats | NULL
-[ RECORD 4 ]----------------------------------------------------------------------------------------------------------
queryid | 1109491335754870054
query | select * from test where x >= $1 and x <= $2
planid | -1748292253893834280
plan | Index Scan using test_x_idx on public.test
| Output: i, x
| Index Cond: ((test.x >= $3) AND (test.x <= $4))
|
wait_stats | NULLG.2.3.2. Ð¡Ð±Ð¾Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¼ÐµÑÑик #
ÐÑполÑзÑÑ pgpro_stats, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе опÑеделиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе инÑеÑеÑÑÑÑие Ð²Ð°Ñ Ð¼ÐµÑÑики. СобиÑаемÑе даннÑе бÑдÑÑ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÑÑÑÑ Ð² колÑÑевом бÑÑеÑе Ð´Ð»Ñ Ð¿Ð¾ÑледÑÑÑей пеÑедаÑи иÑ
в ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга. ÐÑÐ¾Ñ Ð¿Ð¾Ð´Ñ
од лÑÑÑе, Ñем непоÑÑедÑÑвеннÑй опÑÐ¾Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
ÑиÑÑемой мониÑоÑинга, Ñак как в ÑлÑÑае кÑаÑковÑеменного пÑеÑÑÐ²Ð°Ð½Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑобÑаннÑе даннÑе не бÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ, а ÑоÑ
ÑанÑÑÑÑ Ð² бÑÑеÑе и могÑÑ Ð±ÑÑÑ ÑÑиÑÐ°Ð½Ñ Ð¿Ð¾Ð·Ð´Ð½ÐµÐµ.
ЧÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоиÑÑ ÑÐ±Ð¾Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной меÑÑики, вÑполниÑе ÑледÑÑÑее:
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ меÑÑики Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ опÑеделиÑÑ Ð²Ñе паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, пеÑеÑиÑленнÑе в ÐодÑазделе G.2.7.2. Ð Ð¸Ð¼ÐµÐ½Ð°Ñ Ð¿Ð°ÑамеÑÑов должен пÑиÑÑÑÑÑвоваÑÑ ÑникалÑнÑй иденÑиÑикаÑÐ¾Ñ (номеÑ) меÑÑики.
ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ñаз в 60 ÑекÑнд ÑобиÑаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑаздÑвании индекÑов, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе опÑеделиÑÑ Ð¿ÐµÑвÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¼ÐµÑÑикÑ, ÑÑÑановив ÑооÑвеÑÑÑвÑÑÑие паÑамеÑÑÑ ÑледÑÑÑим обÑазом:
pgpro_stats.metric_1_name = index_bloat pgpro_stats.metric_1_query = 'select iname, ibloat, ipages from bloat' pgpro_stats.metric_1_db = 'postgres' pgpro_stats.metric_1_user = postgres pgpro_stats.metric_1_period = '60s'
ÐеÑезапÑÑÑиÑе ÑеÑвеÑ.
pgpro_statsнаÑÐ¸Ð½Ð°ÐµÑ ÑобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ вÑполнÑемÑм опеÑаÑоÑам и ÑÐ¾Ñ ÑанÑÐµÑ ÐµÑ Ð² колÑÑевом бÑÑеÑе; ÑобÑÐ°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика поÑвлÑеÑÑÑ Ð² пÑедÑÑавленииpgpro_stats_metrics:SELECT * FROM pgpro_stats_metrics;
ÐÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи наÑÑÑойÑе ÑкÑпоÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга, коÑоÑÑÑ Ð²Ñ Ð¸ÑполÑзÑеÑе.
G.2.4. ÐÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ #
G.2.4.1. ÐÑедÑÑавление pgpro_stats_statements #
СÑаÑиÑÑика, ÑобиÑÐ°ÐµÐ¼Ð°Ñ Ð¼Ð¾Ð´Ñлем, вÑдаÑÑÑÑ ÑеÑез пÑедÑÑавление Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ pgpro_stats_statements. ÐÑо пÑедÑÑавление ÑодеÑÐ¶Ð¸Ñ Ð¾ÑделÑнÑе ÑÑÑоки Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ комбинаÑии иденÑиÑикаÑоÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, иденÑиÑикаÑоÑа полÑзоваÑÐµÐ»Ñ Ð¸ иденÑиÑикаÑоÑа запÑоÑа (но в колиÑеÑÑве, не пÑевÑÑаÑÑем макÑималÑное ÑиÑло ÑазлиÑнÑÑ
опеÑаÑоÑов, коÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑлеживаÑÑ Ð¼Ð¾Ð´ÑлÑ). СÑолбÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.74.
ТаблиÑа G.74. СÑолбÑÑ pgpro_stats_statements
| Name | Тип | СÑÑлки | ÐпиÑание |
|---|---|---|---|
userid | oid | | OID полÑзоваÑелÑ, вÑполнÑвÑего опеÑаÑÐ¾Ñ |
dbid | oid | | OID Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑой вÑполнÑлÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ |
toplevel | bool |  | True, еÑли даннÑй запÑÐ¾Ñ Ð²ÑполнÑлÑÑ Ð½Ð° веÑÑ
нем ÑÑовне (вÑегда true, еÑли Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа pgpro_stats.track задано знаÑение top) |
queryid | bigint |  | ÐнÑÑÑенний Ñ ÐµÑ-код, вÑÑиÑленнÑй Ð´Ð»Ñ Ð´ÐµÑева ÑазбоÑа опеÑаÑоÑа |
planid | bigint |  | ÐнÑÑÑенний Ñ ÐµÑ-код, вÑÑиÑленнÑй Ð´Ð»Ñ Ð´ÐµÑева плана опеÑаÑоÑа |
query | text |  | ТекÑÑ, пÑедÑÑавлÑÑÑий опеÑаÑÐ¾Ñ |
plan | text |  | Ðлан запÑоÑа, пÑедÑÑавленнÑй в ÑоÑмаÑе, опÑеделÑнном паÑамеÑÑом конÑигÑÑаÑии pgpro_stats.plan_format |
plans | int8 |  | ЧиÑло опеÑаÑий планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑого опеÑаÑоÑа (еÑли вклÑÑÑн паÑамеÑÑ pgpro_stats.track_planning, инаÑе 0) |
total_plan_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное на планиÑование ÑÑого опеÑаÑоÑа в миллиÑекÑндаÑ
(еÑли вклÑÑÑн паÑамеÑÑ pgpro_stats.track_planning, инаÑе 0) |
min_plan_time | float8 |  | ÐинималÑное вÑемÑ, заÑÑаÑенное на планиÑование ÑÑого опеÑаÑоÑа в миллиÑекÑндаÑ
(еÑли вклÑÑÑн паÑамеÑÑ pgpro_stats.track_planning, инаÑе 0) |
max_plan_time | float8 |  | ÐакÑималÑное вÑемÑ, заÑÑаÑенное на планиÑование ÑÑого опеÑаÑоÑа в миллиÑекÑндаÑ
(еÑли вклÑÑÑн паÑамеÑÑ pgpro_stats.track_planning, инаÑе 0) |
mean_plan_time | float8 |  | СÑеднее вÑемÑ, заÑÑаÑенное на планиÑование ÑÑого опеÑаÑоÑа в миллиÑекÑндаÑ
(еÑли вклÑÑÑн паÑамеÑÑ pgpro_stats.track_planning, инаÑе 0) |
stddev_plan_time | float8 |  | СÑандаÑÑное оÑклонение вÑемени, заÑÑаÑенного на планиÑование ÑÑого опеÑаÑоÑа в миллиÑекÑндаÑ
(еÑли вклÑÑÑн паÑамеÑÑ pgpro_stats.track_planning, инаÑе 0) |
plan_rusage | pgpro_stats_rusage |  | СÑаÑиÑÑика иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑов пÑи планиÑовании опеÑаÑоÑа. |
calls | int8 |  | СÑÑÑÑик вÑполнений данного опеÑаÑоÑа |
total_exec_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное на вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
min_exec_time | float8 |  | ÐинималÑное вÑемÑ, поÑÑаÑенное на вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
max_exec_time | float8 |  | ÐакÑималÑное вÑемÑ, поÑÑаÑенное на вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
mean_exec_time | float8 |  | СÑеднее вÑемÑ, поÑÑаÑенное на вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
stddev_exec_time | float8 |  | СÑандаÑÑное оÑклонение вÑемени, заÑÑаÑенного на вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
exec_rusage | pgpro_stats_rusage |  | СÑаÑиÑÑика иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑов пÑи вÑполнении опеÑаÑоÑа. |
rows | int8 |  | ÐбÑее ÑиÑло ÑÑÑок, полÑÑеннÑÑ Ð¸Ð»Ð¸ заÑÑонÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑом |
shared_blks_hit | int8 |  | ÐбÑее ÑиÑло попаданий ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÐºÐµÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа |
shared_blks_read | int8 |  | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
shared_blks_dirtied | int8 |  | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², «загÑÑзнÑннÑÑ Â» даннÑм опеÑаÑоÑом |
shared_blks_written | int8 |  | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
local_blks_hit | int8 |  | ÐбÑее ÑиÑло попаданий локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÐºÐµÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа |
local_blks_read | int8 |  | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
local_blks_dirtied | int8 |  | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², «загÑÑзнÑннÑÑ Â» даннÑм опеÑаÑоÑом |
local_blks_written | int8 |  | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
temp_blks_read | int8 |  | ÐбÑее ÑиÑло вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
temp_blks_written | int8 |  | ÐбÑее ÑиÑло вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
shared_blk_read_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на ÑÑение ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, инаÑе нолÑ) |
shared_blk_write_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на запиÑÑ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, инаÑе нолÑ) |
local_blk_read_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на ÑÑение локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
local_blk_write_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на запиÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
temp_blk_read_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на ÑÑение вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
temp_blk_write_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на запиÑÑ Ð²ÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
wal_records | int8 |  | ÐбÑее ÑиÑло запиÑей WAL, ÑгенеÑиÑованнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑа |
wal_fpi | int8 |  | ÐбÑее ÑиÑло обÑазов полнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð² WAL, ÑгенеÑиÑованнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑа |
wal_bytes | numeric |  | ÐбÑий обÑÑм WAL (в байÑÐ°Ñ ), ÑгенеÑиÑованнÑй пÑи вÑполнении опеÑаÑоÑа |
wal_buffers_full | bigint |  | ÐолиÑеÑÑво ÑлÑÑаев пеÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð±ÑÑеÑов WAL. РвеÑÑиÑÑ Postgres Pro ниже 18 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_functions | int8 |  | ÐбÑее ÑиÑло ÑÑнкÑий, ÑкомпилиÑованнÑÑ Ð² JIT-код пÑи вÑполнении опеÑаÑоÑа. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_generation_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное на компилÑÑÐ¸Ñ JIT-кода пÑи вÑполнении опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_inlining_count | int8 |  | ÐолиÑеÑÑво вÑÑÑаиваний ÑÑнкÑий, иÑполÑзÑемÑÑ Ð² опеÑаÑоÑе. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_inlining_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное на вÑÑÑаивание ÑÑнкÑий пÑи вÑполнении опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_optimization_count | int8 |  | ÐолиÑеÑÑво JIT-опÑимизаÑий Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑа. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_optimization_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное на JIT-опÑимизаÑÐ¸Ñ Ð¿Ñи вÑполнении опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_emission_count | int8 |  | СколÑко Ñаз вÑдавалÑÑ ÐºÐ¾Ð´ пÑи вÑполнении опеÑаÑоÑа. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_emission_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное на вÑдаÑÑ ÐºÐ¾Ð´Ð° пÑи вÑполнении опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_deform_count | int8 |  | ÐбÑее ÑиÑло ÑÑнкÑий пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑÑежей, ÑкомпилиÑованнÑÑ Ð² JIT-код пÑи вÑполнении опеÑаÑоÑа. РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_deform_time | float8 |  | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑом на компилиÑование ÑÑнкÑий пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑÑежей в JIT-код, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
parallel_workers_to_launch | bigint |  | ЧиÑло паÑаллелÑнÑÑ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, коÑоÑÑе планиÑÑеÑÑÑ Ð·Ð°Ð¿ÑÑÑиÑÑ. РвеÑÑиÑÑ Postgres Pro ниже 18 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
parallel_workers_launched | bigint |  | ЧиÑло запÑÑеннÑÑ Ð¿Ð°ÑаллелÑнÑÑ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов. РвеÑÑиÑÑ Postgres Pro ниже 18 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
wait_stats | jsonb |  | ÐбÑÐµÐºÑ Ñипа jsonb, ÑодеÑжаÑий ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ ÑобÑÑиÑм Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа по ÑооÑвеÑÑÑвÑÑÑÐµÐ¼Ñ Ð¿Ð»Ð°Ð½Ñ. ÐÑе показаÑели пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð² миллиÑекÑндаÑ
и кÑаÑÐ½Ñ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии pgpro_stats.profile_period. |
inval_msgs | pgpro_stats_inval_msgs |  | ЧиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа по Ñипам, вÑданнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑа (еÑли ÑÑо поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑеÑвеÑ, инаÑе â 0). |
stats_since | timestamp with time zone |  | ÐÑÐµÐ¼Ñ Ð½Ð°Ñала ÑбоÑа ÑÑаÑиÑÑики по ÑÑÐ¾Ð¼Ñ Ð¾Ð¿ÐµÑаÑоÑÑ |
minmax_stats_since | timestamp with time zone |  | ÐÑÐµÐ¼Ñ Ð½Ð°Ñала ÑбоÑа ÑÑаÑиÑÑики минималÑнÑÑ
/макÑималÑнÑÑ
знаÑений по ÑÑÐ¾Ð¼Ñ Ð¾Ð¿ÐµÑаÑоÑÑ (ÑÑолбÑÑ min_plan_time, max_plan_time, min_exec_time и max_exec_time) |
ÐналогиÑно ÑаÑÑиÑÐµÐ½Ð¸Ñ pg_stat_statements, DML запÑоÑÑ (Ñо еÑÑÑ SELECT, INSERT, UPDATE, DELETE и MERGE) в pgpro_stats обÑединÑÑÑÑÑ Ð² Ð¾Ð´Ð½Ñ Ð·Ð°Ð¿Ð¸ÑÑ, когда они имеÑÑ Ð¸Ð´ÐµÐ½ÑиÑнÑе ÑÑÑÑкÑÑÑÑ Ð·Ð°Ð¿ÑоÑов ÑоглаÑно внÑÑÑÐµÐ½Ð½ÐµÐ¼Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð½Ð¾Ð¼Ñ Ñ
еÑÑ. ÐбÑÑно два запÑоÑа бÑдÑÑ ÑÑиÑаÑÑÑÑ ÑавнÑми пÑи Ñаком ÑÑавнении, еÑли они ÑеманÑиÑеÑки ÑавнознаÑнÑ, не ÑÑиÑÐ°Ñ Ð·Ð½Ð°Ñений конÑÑанÑ, ÑигÑÑиÑÑÑÑиÑ
в запÑоÑе. Ðогда знаÑение конÑÑанÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ Ð² ÑелÑÑ
ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа Ñ Ð´ÑÑгими запÑоÑами, ÑÑа конÑÑанÑа заменÑеÑÑÑ Ð² вÑводе pgpro_stats обознаÑением паÑамеÑÑа, напÑимеÑ, $k, где k - наÑÑÑалÑное ÑиÑло. ÐÑли в запÑоÑе Ñже еÑÑÑ Ð¿Ð°ÑамеÑÑÑ, Ñо наÑалÑное знаÑение k Ñавно номеÑÑ, ÑледÑÑÑим за номеÑом поÑледнего паÑамеÑÑа $n в иÑÑ
одном ÑекÑÑе запÑоÑа. ÐÑли паÑамеÑÑов неÑ, Ñо наÑалÑное знаÑение k Ñавно единиÑе. СÑÐ¾Ð¸Ñ Ð¾ÑмеÑиÑÑ, ÑÑо в некоÑоÑÑÑ
ÑлÑÑаÑÑ
на ÑÑÑ Ð½ÑмеÑаÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð²Ð»Ð¸ÑÑÑ ÑкÑÑÑÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¿Ð°ÑамеÑÑов. ÐапÑимеÑ, PL/pgSQL пÑименÑÐµÑ Ñакие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² запÑоÑÑ Ð·Ð½Ð°Ñений локалÑнÑÑ
пеÑеменнÑÑ
ÑÑнкÑий, Ñак ÑÑо опеÑаÑÐ¾Ñ PL/pgSQL вида SELECT i + 1 INTO j бÑÐ´ÐµÑ Ð¿ÑедÑÑавлен в ÑекÑÑе как SELECT i + $2.
РнекоÑоÑÑÑ
ÑлÑÑаÑÑ
запÑоÑÑ Ñ Ð²Ð¸Ð·ÑалÑно ÑазлиÑнÑми ÑекÑÑами могÑÑ Ð±ÑÑÑ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð² Ð¾Ð´Ð½Ñ Ð·Ð°Ð¿Ð¸ÑÑ pgpro_stats_statements. ÐбÑÑно ÑÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ ÑолÑко Ð´Ð»Ñ ÑеманÑиÑеÑки ÑавнознаÑнÑÑ
запÑоÑов, но еÑÑÑ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ°Ñ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо из-за наложений Ñ
еÑа неÑвÑзаннÑе запÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð¾Ð±ÑединÑннÑми в одной запиÑи. (Ðднако ÑÑо невозможно Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов, оÑноÑÑÑимÑÑ Ðº ÑазнÑм полÑзоваÑелÑм или базам даннÑÑ
.)
ÐодобнÑй Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑекÑÑов pgpro_stats иÑполÑзÑÐµÑ Ð¸ Ð´Ð»Ñ ÑекÑÑов планов. ÐÑи ÑÑом делаеÑÑÑ Ð¿Ð¾Ð¿ÑÑка ÑопоÑÑавиÑÑ Ð½Ð¾Ð¼ÐµÑа конÑÑÐ°Ð½Ñ Ð² ÑекÑÑе плана ÑооÑвеÑÑÑвÑÑÑим номеÑам конÑÑÐ°Ð½Ñ Ð² ÑекÑÑе запÑоÑа. ÐÑли ÑÐ°ÐºÐ°Ñ Ð¿Ð¾Ð¿ÑÑка Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð¹-либо конÑÑанÑÑ Ð² ÑекÑÑе плана оканÑиваеÑÑÑ Ð½ÐµÑдаÑей, Ñо ей пÑиÑваиваеÑÑÑ ÑледÑÑÑий номеÑ, болÑÑий макÑималÑного номеÑа заменÑнной конÑÑанÑÑ Ð² ÑекÑÑе запÑоÑа. ÐапÑимеÑ, Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑа:
SELECT 1::int, 'abc'::VARCHAR(3), 2::int;
в его ÑекÑÑе и в ÑекÑÑе ÑооÑвеÑÑÑвÑÑÑего плана pgpro_stats подÑÑÐ°Ð²Ð¸Ñ Ð½Ð¾Ð¼ÐµÑа конÑÑÐ°Ð½Ñ ÑледÑÑÑим обÑазом:
postgres=# SELECT query, plan FROM pgpro_stats_statements;
query | plan
------------------------------------------------+--------------------------------------------------
SELECT $1::int, $2::VARCHAR(3), $3::int | Result +
| Output: $1, $4, $3 +Рданном ÑекÑÑе плана ÑдалоÑÑ ÑопоÑÑавиÑÑ ÐºÐ¾Ð½ÑÑанÑÑ Ñ Ð½Ð¾Ð¼ÐµÑами 1 и 3 из ÑекÑÑа запÑоÑа, а конÑÑанÑÑ Ñ Ð½Ð¾Ð¼ÐµÑом 2 ÑопоÑÑавиÑÑ Ð½Ðµ ÑдалоÑÑ, и она бÑла заменена номеÑом, ÑледÑÑÑим за макÑималÑнÑм номеÑом в ÑекÑÑе запÑоÑа â номеÑом 4.
ÐÑи подÑÑановке номеÑов в ÑеÑÑе плана делаеÑÑÑ Ð¸ÑклÑÑение Ð´Ð»Ñ Ð½Ð¾Ð¼ÐµÑа веÑÑии XML докÑменÑа. ÐÑли в иÑÑ
одном запÑоÑе он бÑл задан конÑÑанÑой, напÑÐ¸Ð¼ÐµÑ '1.0', Ñо в ÑекÑÑе плана ÑÑо знаÑение ÑоÑ
ÑаниÑÑÑ ÐºÐ°Ðº еÑÑÑ Ð¸ не бÑÐ´ÐµÑ Ð·Ð°Ð¼ÐµÐ½ÐµÐ½Ð¾ на подÑÑановоÑнÑй Ñимвол вида $k. ÐÑли в иÑÑ
одном запÑоÑе Ð½Ð¾Ð¼ÐµÑ Ð²ÐµÑÑии XML докÑменÑа бÑл задан вÑÑажением, Ñо подÑÑановка Ñимволов вмеÑÑо конÑÑÐ°Ð½Ñ Ð±ÑÐ´ÐµÑ Ñделана по обÑÑнÑм пÑавилам.
G.2.4.2. ÐÑедÑÑавление pgpro_stats_totals #
ÐгÑегиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика, ÑобÑÐ°Ð½Ð½Ð°Ñ Ð¼Ð¾Ð´Ñлем, вÑдаÑÑÑÑ ÑеÑез пÑедÑÑавление pgpro_stats_totals. ÐÑо пÑедÑÑавление ÑодеÑÐ¶Ð¸Ñ Ð¾ÑделÑнÑе ÑÑÑоки Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑделÑного обÑекÑа ÐÐ (но в колиÑеÑÑве, не пÑевÑÑаÑÑем макÑималÑное ÑиÑло ÑазлиÑнÑÑ
обÑекÑов, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑлеживаÑÑ Ð¼Ð¾Ð´ÑлÑ). СÑолбÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.75.
ТаблиÑа G.75. СÑолбÑÑ pgpro_stats_totals
| Name | Тип | ÐпиÑание |
|---|---|---|
object_type | text | Тип обÑекÑа, Ð´Ð»Ñ ÐºÐ¾ÑоÑого агÑегиÑÑеÑÑÑ ÑÑаÑиÑÑика: «cluster» (клаÑÑÐµÑ ÐÐ), «database» (база даннÑÑ ), «user» (полÑзоваÑелÑ), «client_addr» (адÑÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñа), «application» (пÑиложение), «backend» (обÑлÑживаÑÑий пÑоÑеÑÑ), «session» (ÑеанÑ) |
object_id | bigint | ÐденÑиÑикаÑÐ¾Ñ Ð¾Ð±ÑекÑа: oid Ð´Ð»Ñ Ð±Ð°Ð· и полÑзоваÑелей, pid Ð´Ð»Ñ Ð¾Ð±ÑлÑживаÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов, sid Ð´Ð»Ñ ÑеанÑов, NULL Ð´Ð»Ñ Ð¸Ð½ÑÑ Ð¾Ð±ÑекÑов |
object_name | text | ТекÑÑовое Ð¸Ð¼Ñ Ð¾Ð±ÑекÑа либо NULL |
queries_planned | int8 | ЧиÑло ÑпланиÑованнÑÑ Ð·Ð°Ð¿ÑоÑов |
total_plan_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на планиÑование опеÑаÑоÑов, в миллиÑекÑÐ½Ð´Ð°Ñ |
total_plan_rusage | pgpro_stats_rusage | ÐгÑегиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑов пÑи планиÑовании опеÑаÑоÑов |
queries_executed | int8 | ЧиÑло вÑполненнÑÑ Ð·Ð°Ð¿ÑоÑов |
total_exec_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на вÑполнение опеÑаÑоÑов, в миллиÑекÑÐ½Ð´Ð°Ñ |
total_exec_rusage | pgpro_stats_rusage | ÐгÑегиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑов пÑи вÑполнении опеÑаÑоÑов |
rows | int8 | ÐбÑее ÑиÑло ÑÑÑок, полÑÑеннÑÑ Ð¸Ð»Ð¸ заÑÑонÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
shared_blks_hit | int8 | ÐбÑее ÑиÑло попаданий ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÐºÐµÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð¿ÐµÑаÑоÑов |
shared_blks_read | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
shared_blks_dirtied | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², «загÑÑзнÑннÑÑ Â» опеÑаÑоÑами |
shared_blks_written | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
local_blks_hit | int8 | ÐбÑее ÑиÑло попаданий локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÐºÐµÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð¿ÐµÑаÑоÑов |
local_blks_read | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
local_blks_dirtied | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², «загÑÑзнÑннÑÑ Â» опеÑаÑоÑами |
local_blks_written | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
temp_blks_read | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
temp_blks_written | int8 | ÐбÑее ÑиÑло вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð¾Ð¿ÐµÑаÑоÑами |
shared_blk_read_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на ÑÑение ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, инаÑе нолÑ) |
shared_blk_write_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на запиÑÑ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, инаÑе нолÑ) |
local_blk_read_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на ÑÑение локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
local_blk_write_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на запиÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
temp_blk_read_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на ÑÑение вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
temp_blk_write_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на запиÑÑ Ð²ÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае). РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
wal_records | int8 | ÐбÑее ÑиÑло запиÑей WAL, ÑгенеÑиÑованнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑов |
wal_fpi | int8 | ÐбÑее ÑиÑло обÑазов полнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð² WAL, ÑгенеÑиÑованнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑов |
wal_bytes | numeric | ÐбÑий обÑÑм WAL (в байÑÐ°Ñ ), ÑгенеÑиÑованнÑй пÑи вÑполнении опеÑаÑоÑов |
wal_buffers_full | bigint | ÐбÑее колиÑеÑÑво ÑлÑÑаев пеÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð±ÑÑеÑов WAL. РвеÑÑиÑÑ Postgres Pro ниже 18 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_functions | int8 | ÐбÑее ÑиÑло ÑÑнкÑий, ÑкомпилиÑованнÑÑ Ð² JIT-код пÑи вÑполнении опеÑаÑоÑов. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_generation_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на компилÑÑÐ¸Ñ JIT-кода пÑи вÑполнении опеÑаÑоÑов, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_inlining_count | int8 | ÐолиÑеÑÑво вÑÑÑаиваний ÑÑнкÑий, иÑполÑзÑемÑÑ Ð² опеÑаÑоÑÐ°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_inlining_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на вÑÑÑаивание ÑÑнкÑий пÑи вÑполнении опеÑаÑоÑов, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_optimization_count | int8 | ÐолиÑеÑÑво JIT-опÑимизаÑий Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑов. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_optimization_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на JIT-опÑимизаÑÐ¸Ñ Ð¿Ñи вÑполнении опеÑаÑоÑов, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_emission_count | int8 | СколÑко Ñаз вÑдавалÑÑ ÐºÐ¾Ð´ пÑи вÑполнении опеÑаÑоÑов. РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_emission_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на вÑдаÑÑ ÐºÐ¾Ð´Ð° пÑи вÑполнении опеÑаÑоÑов, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 15 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_deform_count | int8 | ÐбÑее ÑиÑло ÑÑнкÑий пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑÑежей, ÑкомпилиÑованнÑÑ Ð² JIT-код пÑи вÑполнении опеÑаÑоÑов. РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
jit_deform_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное опеÑаÑоÑами на компилиÑование ÑÑнкÑий пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑÑежей в JIT-код, в миллиÑекÑÐ½Ð´Ð°Ñ . РвеÑÑиÑÑ Postgres Pro ниже 17 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
parallel_workers_to_launch | bigint | ЧиÑло паÑаллелÑнÑÑ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, коÑоÑÑе опеÑаÑоÑÑ Ð¿Ð»Ð°Ð½Ð¸ÑÑÑÑ Ð·Ð°Ð¿ÑÑÑиÑÑ. РвеÑÑиÑÑ Postgres Pro ниже 18 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
parallel_workers_launched | bigint | ЧиÑло паÑаллелÑнÑÑ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, запÑÑеннÑÑ Ð¾Ð¿ÐµÑаÑоÑами. РвеÑÑиÑÑ Postgres Pro ниже 18 вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
wait_stats | jsonb | ÐбÑÐµÐºÑ Ñипа jsonb, ÑодеÑжаÑий ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ ÑобÑÑиÑм Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа. ÐÑе показаÑели пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð² миллиÑекÑндаÑ
и кÑаÑÐ½Ñ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии pgpro_stats.profile_period. |
inval_msgs | pgpro_stats_inval_msgs | ЧиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа по Ñипам, вÑданнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑов (еÑли ÑÑо поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑеÑвеÑ, инаÑе â 0). |
cache_resets | int4 | ЧиÑло ÑбÑоÑов ÑазделÑемого кеÑа (ÑолÑко Ð´Ð»Ñ ÐºÐ»Ð°ÑÑеÑа ÐÐ, баз даннÑÑ Ð¸ обÑлÑживаÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов). УвелиÑиваеÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑлÑживаÑÑего пÑоÑеÑÑа, когда он полÑÑÐ°ÐµÑ ÑообÑение, вÑзÑваÑÑее полнÑй ÑбÑÐ¾Ñ ÐºÐµÑа. |
stats_since | timestamp with time zone | ÐÑемÑ, когда наÑалÑÑ ÑÐ±Ð¾Ñ ÑÑаÑиÑÑики по опеÑаÑоÑам |
G.2.4.3. ÐÑедÑÑавление pgpro_stats_info #
СÑаÑиÑÑика Ñамого модÑÐ»Ñ pgpro_stats ÑобиÑаеÑÑÑ Ð¸ вÑдаÑÑÑÑ ÑеÑез пÑедÑÑавление Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ pgpro_stat_info. ÐÑо пÑедÑÑавление ÑодеÑÐ¶Ð¸Ñ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑокÑ. СÑолбÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.76.
ТаблиÑа G.76. СÑолбÑÑ pgpro_stats_info
| Name | Тип | ÐпиÑание |
|---|---|---|
dealloc | bigint | СколÑко вÑего Ñаз в pgpro_stats_statements оÑбÑаÑÑвалиÑÑ Ð·Ð°Ð¿Ð¸Ñи о Ñедко вÑполнÑемÑÑ
опеÑаÑоÑаÑ
, поÑколÑÐºÑ Ð½Ð° обÑабоÑÐºÑ Ð¿Ð¾ÑÑÑпало болÑÑе ÑазлиÑнÑÑ
опеÑаÑоÑов, Ñем задано в паÑамеÑÑе pgpro_stats.max |
stats_reset | timestamp with time zone | ÐÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего ÑбÑоÑа вÑеÑ
ÑÑаÑиÑÑиÑеÑкиÑ
даннÑÑ
в пÑедÑÑавлении pgpro_stats_statements |
G.2.4.4. ÐÑедÑÑавление pgpro_stats_metrics #
ÐеÑÑики, ÑобÑаннÑе модÑлем pgpro_stats, вÑводÑÑÑÑ Ð² пÑедÑÑавлении pgpro_stats_metrics. Ð ÑаблиÑе ниже опиÑÐ°Ð½Ñ ÑÑолбÑÑ ÑÑого пÑедÑÑавлениÑ.
ТаблиÑа G.77. СÑолбÑÑ pgpro_stats_metrics
| Name | Тип | ÐпиÑание |
|---|---|---|
metric_number | int4 | УникалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑобиÑаемой меÑÑики, назнаÑаемÑй полÑзоваÑелем. ÐÑÐ¾Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ Ð²Ñ Ð¾Ð´Ð¸Ñ Ð² имена паÑамеÑÑов, опÑеделÑÑÑÐ¸Ñ Ð¼ÐµÑÑикÑ. |
metric_name | text | ÐÐ¼Ñ Ð¼ÐµÑÑики, опÑеделÑнное паÑамеÑÑом pgpro_stats.metric_ |
db_name | text | ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ð´Ð»Ñ ÐºÐ¾ÑоÑой бÑла полÑÑена меÑÑика |
ts | timestamptz | ÐÑемÑ, когда бÑло вÑÑиÑлено знаÑение меÑÑики |
value | jsonb | РезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа, пÑоизводивÑего вÑÑиÑление меÑÑики. Ðн ÑеÑиализÑеÑÑÑ Ð² Ñипе jsonb как маÑÑив обÑекÑов, полÑÑеннÑÑ
Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии to_jsonb(. Ð ÑлÑÑае оÑибки возвÑаÑаеÑÑÑ Ð¾Ð´Ð¸Ð½ обÑекÑ, ÑодеÑжаÑий Ð¿Ð¾Ð»Ñ code (код оÑибки), message (ÑообÑение), detail (подÑобноÑÑи) и hint (подÑказка). |
G.2.4.5. ÐÑедÑÑавление pgpro_stats_archiver #
ÐÑедÑÑавление pgpro_stats_archiver бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¾Ð´Ð½Ñ ÑÑÑокÑ, показÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñе о пÑоÑеÑÑе аÑÑ
иваÑии клаÑÑеÑа.
ТаблиÑа G.78. СÑолбÑÑ pgpro_stats_archiver
| СÑÐ¾Ð»Ð±ÐµÑ | Тип | ÐпиÑание |
|---|---|---|
archived_count | bigint | ЧиÑло Ñайлов WAL, коÑоÑÑе бÑли ÑÑпеÑно зааÑÑ Ð¸Ð²Ð¸ÑÐ¾Ð²Ð°Ð½Ñ |
last_archived_wal | text | ÐÐ¼Ñ Ð¿Ð¾Ñледнего ÑÑпеÑно зааÑÑ Ð¸Ð²Ð¸Ñованного Ñайла WAL |
last_archived_time | timestamp with time zone | ÐÑÐµÐ¼Ñ Ð¿Ð¾Ñледней ÑÑпеÑной аÑÑ Ð¸Ð²Ð°Ñии |
failed_count | bigint | ЧиÑло неÑдаÑнÑÑ Ð¿Ð¾Ð¿ÑÑок аÑÑ Ð¸Ð²Ð°Ñии Ñайлов WAL |
last_failed_wal | text | ÐÐ¼Ñ Ñайла WAL, коÑоÑÑй обÑабаÑÑвалÑÑ Ð² Ñ Ð¾Ð´Ðµ поÑледней неÑдавÑейÑÑ Ð°ÑÑ Ð¸Ð²Ð°Ñии |
last_failed_time | timestamp with time zone | ÐÑÐµÐ¼Ñ Ð¿Ð¾Ñледней неÑдавÑейÑÑ Ð°ÑÑ Ð¸Ð²Ð°Ñии |
active_time | int8 | ÐбÑее вÑемÑ, в ÑеÑение коÑоÑого пÑоÑеÑÑ Ð°ÑÑ Ð¸Ð²Ð°Ñии бÑл акÑивен |
archive_command_time | int8 | ÐбÑее вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð°ÑÑ Ð¸Ð²Ð°Ñии |
stats_reset | timestamp with time zone | ÐоÑледнее вÑÐµÐ¼Ñ ÑбÑоÑа ÑÑÐ¸Ñ ÑÑаÑиÑÑиÑеÑÐºÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ |
G.2.4.6. ÐÑедÑÑавление pgpro_stats_vacuum_database #
Ðажно
ÐаÑÐ¸Ð½Ð°Ñ Ñ Postgres Pro 16, ÑÑо пÑедÑÑавление не ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, поÑколÑÐºÑ Ð¾ÑобÑажаемÑе в нÑм ÑÑаÑиÑÑики доÑÑÑÐ¿Ð½Ñ ÑеÑез пÑедÑÑавление каÑалога pg_stats_vacuum_database (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÑÐ°Ð·Ð´ÐµÐ»Ñ Ð¡Ð¸ÑÑемнÑе пÑедÑÑавлениÑ).
ÐÑедÑÑавление pgpro_stats_vacuum_database бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¿Ð¾ одной ÑÑÑоке Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
в ÑекÑÑем клаÑÑеÑе, показÑÐ²Ð°Ñ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¾ÑиÑÑки ÑÑой конкÑеÑной ÐÐ. ÐÑа ÑÑаÑиÑÑика ÑобиÑаеÑÑÑ ÑдÑом ÑиÑÑемÑ, как опиÑано в Разделе 26.2. Ð ÑаблиÑе ниже опиÑÐ°Ð½Ñ ÑÑолбÑÑ Ð¿ÑедÑÑавлениÑ.
ТаблиÑа G.79. СÑолбÑÑ pgpro_stats_vacuum_database
| СÑÐ¾Ð»Ð±ÐµÑ | Тип | ÐпиÑание |
|---|---|---|
dbid | oid | OID Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ |
total_blks_read | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , пÑоÑиÑаннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÐÐ |
total_blks_hit | int8 | ÐолиÑеÑÑво попаданий в бÑÑеÑнÑй ÐºÐµÑ Ð±Ð»Ð¾ÐºÐ¾Ð² Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² пÑоÑеÑÑе опеÑаÑий оÑиÑÑки, вÑполненнÑÑ Ð´Ð»Ñ ÑÑой ÐÐ |
total_blks_dirtied | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , загÑÑзнÑннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÐÐ |
total_blks_written | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , запиÑаннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÐÐ |
wal_records | int8 | ÐбÑее ÑиÑло запиÑей WAL, ÑгенеÑиÑованнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ |
wal_fpi | int8 | ÐбÑее ÑиÑло обÑазов полнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð² WAL, ÑгенеÑиÑованнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ |
wal_bytes | numeric | ÐбÑий обÑÑм WAL (в байÑÐ°Ñ ), ÑгенеÑиÑованнÑй опеÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ |
blk_read_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на ÑÑение блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑой ÐÐ, в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн паÑамеÑÑ track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае) |
blk_write_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на запиÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑой ÐÐ, в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн паÑамеÑÑ track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае) |
delay_time | float8 | ÐÑÐµÐ¼Ñ Ð¿ÑоÑÑÐ¾Ñ Ð² ÑоÑке задеÑжки пÑи вÑполнении опеÑаÑий оÑиÑÑки Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в миллиÑекÑÐ½Ð´Ð°Ñ (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 18.4.4). |
system_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в Ñежиме ÑдÑа пÑи оÑиÑÑке ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в миллиÑекÑÐ½Ð´Ð°Ñ |
user_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в полÑзоваÑелÑÑком Ñежиме пÑи оÑиÑÑке ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в миллиÑекÑÐ½Ð´Ð°Ñ |
total_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на оÑиÑÑÐºÑ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в миллиÑекÑÐ½Ð´Ð°Ñ |
interrupts | int4 | СколÑко Ñаз опеÑаÑии оÑиÑÑки Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð±Ñли пÑеÑÐ²Ð°Ð½Ñ Ð¸Ð·-за ÐºÐ°ÐºÐ¸Ñ -либо оÑибок |
G.2.4.7. ÐÑедÑÑавление pgpro_stats_vacuum_tables #
Ðажно
ÐаÑÐ¸Ð½Ð°Ñ Ñ Postgres Pro 16, ÑÑо пÑедÑÑавление не ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, поÑколÑÐºÑ Ð¾ÑобÑажаемÑе в нÑм ÑÑаÑиÑÑики доÑÑÑÐ¿Ð½Ñ ÑеÑез пÑедÑÑавление каÑалога pg_stats_vacuum_tables (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÑÐ°Ð·Ð´ÐµÐ»Ñ Ð¡Ð¸ÑÑемнÑе пÑедÑÑавлениÑ).
ÐÑедÑÑавление pgpro_stats_vacuum_tables бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¿Ð¾ одной ÑÑÑоке Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑаблиÑÑ Ð² ÑекÑÑей базе даннÑÑ
(вклÑÑÐ°Ñ ÑаблиÑÑ TOAST), показÑÐ²Ð°Ñ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¾ÑиÑÑки ÑÑой конкÑеÑной ÑаблиÑÑ. ÐÑа ÑÑаÑиÑÑика ÑобиÑаеÑÑÑ ÑдÑом ÑиÑÑемÑ, как опиÑано в Разделе 26.2. Ð ÑаблиÑе ниже опиÑÐ°Ð½Ñ ÑÑолбÑÑ Ð¿ÑедÑÑавлениÑ.
ТаблиÑа G.80. СÑолбÑÑ pgpro_stats_vacuum_tables
| СÑÐ¾Ð»Ð±ÐµÑ | Тип | ÐпиÑание |
|---|---|---|
relid | oid | OID ÑаблиÑÑ |
schema | name | ÐÐ¼Ñ ÑÑ ÐµÐ¼Ñ, в коÑоÑой ÑаÑположена ÑÑа ÑаблиÑа |
relname | name | ÐÐ¼Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑаблиÑÑ |
total_blks_read | int8 | ÐолиÑеÑÑво блоков ÐÐ, пÑоÑиÑаннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
total_blks_hit | int8 | ÐолиÑеÑÑво попаданий в бÑÑеÑнÑй ÐºÐµÑ Ð±Ð»Ð¾ÐºÐ¾Ð² Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² пÑоÑеÑÑе опеÑаÑий оÑиÑÑки, вÑполненнÑÑ Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
total_blks_dirtied | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , загÑÑзнÑннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
total_blks_written | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , запиÑаннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
rel_blks_read | int8 | ÐолиÑеÑÑво блоков, пÑоÑиÑаннÑÑ Ð¸Ð· ÑÑой ÑаблиÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки |
rel_blks_hit | int8 | СколÑко Ñаз блоки ÑÑой ÑаблиÑÑ Ñже обнаÑÑживалиÑÑ Ð² бÑÑеÑном кеÑе опеÑаÑиÑми оÑиÑÑки, Ñак ÑÑо ÑÑение Ñ Ð´Ð¸Ñка не поÑÑебовалоÑÑ (здеÑÑ ÑÑиÑÑваÑÑÑÑ ÑолÑко ÑлÑÑаи обнаÑÑÐ¶ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² в кеÑе Postgres Pro, а не в кеÑе опеÑаÑионной ÑиÑÑемÑ) |
pages_scanned | int8 | ÐолиÑеÑÑво ÑÑÑаниÑ, к коÑоÑÑм обÑаÑалиÑÑ Ð¾Ð¿ÐµÑаÑии оÑиÑÑки, вÑполненнÑе Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
pages_removed | int8 | ÐолиÑеÑÑво ÑÑÑаниÑ, ÑдалÑннÑÑ Ð¸Ð· ÑизиÑеÑкого Ñ ÑанилиÑа опеÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
pages_frozen | int8 | СколÑко Ñаз ÑÑÑаниÑÑ ÑÑой ÑаблиÑÑ Ð±Ñли помеÑÐµÐ½Ñ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки в каÑÑе видимоÑÑи как полноÑÑÑÑ Ð·Ð°Ð¼Ð¾ÑоженнÑе |
pages_all_visible | int8 | СколÑко Ñаз ÑÑÑаниÑÑ ÑÑой ÑаблиÑÑ Ð±Ñли помеÑÐµÐ½Ñ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки в каÑÑе видимоÑÑи как полноÑÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñе |
tuples_deleted | int8 | ÐолиÑеÑÑво «мÑÑÑвÑÑ Â» коÑÑежей, ÑдалÑннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки из ÑÑой ÑаблиÑÑ |
tuples_frozen | int8 | ÐолиÑеÑÑво коÑÑежей ÑÑой ÑаблиÑÑ, помеÑеннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки как замоÑоженнÑе |
dead_tuples | int8 | ÐолиÑеÑÑво «мÑÑÑвÑÑ Â» коÑÑежей, оÑÑавленнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки в ÑÑой ÑаблиÑе из-за видимоÑÑи ÑÑÐ¸Ñ ÐºÐ¾ÑÑежей в ÑÑанзакÑиÑÑ |
index_vacuum_count | int8 | СколÑко Ñаз бÑла вÑполнена оÑиÑÑка индекÑов ÑÑой ÑаблиÑÑ |
rev_all_frozen_pages | int8 | СколÑко Ñаз Ð´Ð»Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑаблиÑÑ ÑнималаÑÑ Ð¼ÐµÑка полной замоÑозки в каÑÑе видимоÑÑи |
rev_all_visible_pages | int8 | СколÑко Ñаз Ð´Ð»Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑаблиÑÑ ÑнималаÑÑ Ð¼ÐµÑка полной видимоÑÑи в каÑÑе видимоÑÑи |
wal_records | int8 | ÐбÑее ÑиÑло запиÑей WAL, ÑгенеÑиÑованнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
wal_fpi | int8 | ÐбÑее ÑиÑло обÑазов полнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð² WAL, ÑгенеÑиÑованнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
wal_bytes | numeric | ÐбÑий обÑÑм WAL (в байÑÐ°Ñ ), ÑгенеÑиÑованнÑй опеÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ |
blk_read_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на ÑÑение блоков ÐРопеÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн паÑамеÑÑ track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае) |
blk_write_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на запиÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² ÐРопеÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн паÑамеÑÑ track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае) |
delay_time | float8 | ÐÑÐµÐ¼Ñ Ð¿ÑоÑÑÐ¾Ñ Ð² ÑоÑке задеÑжки пÑи вÑполнении опеÑаÑий оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 18.4.4). |
system_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в Ñежиме ÑдÑа пÑи оÑиÑÑке ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ |
user_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в полÑзоваÑелÑÑком Ñежиме пÑи оÑиÑÑке ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ |
total_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на оÑиÑÑÐºÑ ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ |
interrupts | integer | СколÑко Ñаз опеÑаÑии оÑиÑÑки Ð´Ð»Ñ ÑÑой ÑаблиÑÑ Ð±Ñли пÑеÑÐ²Ð°Ð½Ñ Ð¸Ð·-за ÐºÐ°ÐºÐ¸Ñ -либо оÑибок |
СÑолбÑÑ total_*, wal_* и blk_* ÑодеÑÐ¶Ð°Ñ Ð´Ð°Ð½Ð½Ñе об оÑиÑÑке индекÑов ÑÑой ÑаблиÑÑ, а ÑÑолбÑÑ system_time и user_time ÑодеÑÐ¶Ð°Ñ ÑолÑко даннÑе об оÑиÑÑке кÑÑи.
G.2.4.8. ÐÑедÑÑавление pgpro_stats_vacuum_indexes #
Ðажно
ÐаÑÐ¸Ð½Ð°Ñ Ñ Postgres Pro 16, ÑÑо пÑедÑÑавление не ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, поÑколÑÐºÑ Ð¾ÑобÑажаемÑе в нÑм ÑÑаÑиÑÑики доÑÑÑÐ¿Ð½Ñ ÑеÑез пÑедÑÑавление каÑалога pg_stats_vacuum_indexes (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÑÐ°Ð·Ð´ÐµÐ»Ñ Ð¡Ð¸ÑÑемнÑе пÑедÑÑавлениÑ).
ÐÑедÑÑавление pgpro_stats_vacuum_indexes бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ индекÑа в ÑекÑÑей базе даннÑÑ
(вклÑÑÐ°Ñ Ð¸Ð½Ð´ÐµÐºÑÑ ÑаблиÑÑ TOAST), показÑÐ²Ð°Ñ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¾ÑиÑÑки ÑÑого конкÑеÑного индекÑа. ÐÑа ÑÑаÑиÑÑика ÑобиÑаеÑÑÑ ÑдÑом ÑиÑÑемÑ, как опиÑано в Разделе 26.2. Ð ÑаблиÑе ниже опиÑÐ°Ð½Ñ ÑÑолбÑÑ Ð¿ÑедÑÑавлениÑ.
ТаблиÑа G.81. СÑолбÑÑ pgpro_stats_vacuum_indexes
| СÑÐ¾Ð»Ð±ÐµÑ | Тип | ÐпиÑание |
|---|---|---|
relid | oid | OID индекÑа |
schema | name | ÐÐ¼Ñ ÑÑ ÐµÐ¼Ñ, в коÑоÑой ÑаÑположен ÑÑÐ¾Ñ Ð¸Ð½Ð´ÐµÐºÑ |
relname | name | ÐÐ¼Ñ ÑÑого индекÑа |
total_blks_read | int8 | ÐолиÑеÑÑво блоков ÐÐ, пÑоÑиÑаннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
total_blks_hit | int8 | ÐолиÑеÑÑво попаданий в бÑÑеÑнÑй ÐºÐµÑ Ð±Ð»Ð¾ÐºÐ¾Ð² Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² пÑоÑеÑÑе опеÑаÑий оÑиÑÑки, вÑполненнÑÑ Ð´Ð»Ñ ÑÑого индекÑа |
total_blks_dirtied | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , загÑÑзнÑннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
total_blks_written | int8 | ÐолиÑеÑÑво блоков Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , запиÑаннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
rel_blks_read | int8 | ÐолиÑеÑÑво блоков, пÑоÑиÑаннÑÑ Ð´Ð»Ñ ÑÑого индекÑа опеÑаÑиÑми оÑиÑÑки |
rel_blks_hit | int8 | СколÑко Ñаз блоки ÑÑого индекÑа Ñже обнаÑÑживалиÑÑ Ð² бÑÑеÑном кеÑе опеÑаÑиÑми оÑиÑÑки, Ñак ÑÑо ÑÑение Ñ Ð´Ð¸Ñка не поÑÑебовалоÑÑ (здеÑÑ ÑÑиÑÑваÑÑÑÑ ÑолÑко ÑлÑÑаи обнаÑÑÐ¶ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² в кеÑе Postgres Pro, а не в кеÑе опеÑаÑионной ÑиÑÑÐµÐ¼Ñ ÐС) |
pages_deleted | int8 | ÐолиÑеÑÑво ÑÑÑаниÑ, коÑоÑÑе бÑли ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑого индекÑа |
tuples_deleted | int8 | ÐолиÑеÑÑво «мÑÑÑвÑÑ Â» коÑÑежей, ÑдалÑннÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
wal_records | int8 | ÐбÑее ÑиÑло запиÑей WAL, ÑгенеÑиÑованнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
wal_fpi | int8 | ÐбÑее ÑиÑло обÑазов полнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð² WAL, ÑгенеÑиÑованнÑÑ Ð¾Ð¿ÐµÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
wal_bytes | numeric | ÐбÑий обÑÑм WAL (в байÑÐ°Ñ ), ÑгенеÑиÑованнÑй опеÑаÑиÑми оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа |
blk_read_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на ÑÑение блоков ÐРопеÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑого индекÑа, в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн паÑамеÑÑ track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае) |
blk_write_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на запиÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² ÐРопеÑаÑиÑми оÑиÑÑки, вÑполненнÑми Ð´Ð»Ñ ÑÑой ÑаблиÑÑ, в миллиÑекÑÐ½Ð´Ð°Ñ (еÑли вклÑÑÑн паÑамеÑÑ track_io_timing, или Ð½Ð¾Ð»Ñ Ð² пÑоÑивном ÑлÑÑае) |
delay_time | float8 | ÐÑÐµÐ¼Ñ Ð¿ÑоÑÑÐ¾Ñ Ð² ÑоÑке задеÑжки пÑи вÑполнении опеÑаÑий оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа, в миллиÑекÑÐ½Ð´Ð°Ñ (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 18.4.4). |
system_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в Ñежиме ÑдÑа пÑи оÑиÑÑке ÑÑого индекÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
user_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в полÑзоваÑелÑÑком Ñежиме пÑи оÑиÑÑке ÑÑого индекÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
total_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на оÑиÑÑÐºÑ ÑÑого индекÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
interrupts | integer | СколÑко Ñаз опеÑаÑии оÑиÑÑки Ð´Ð»Ñ ÑÑого индекÑа бÑли пÑеÑÐ²Ð°Ð½Ñ Ð¸Ð·-за ÐºÐ°ÐºÐ¸Ñ -либо оÑибок |
G.2.5. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ #
G.2.5.1. Тип pgpro_stats_rusage #
Тип pgpro_stats_rusage пÑедÑÑавлÑÐµÑ Ñобой запиÑÑ, ÑодеÑжаÑÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑов во вÑÐµÐ¼Ñ Ð¿Ð»Ð°Ð½Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов. ÐÐ¾Ð»Ñ ÑÑого Ñипа Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.82.
ТаблиÑа G.82. ÐÐ¾Ð»Ñ pgpro_stats_rusage
| Name | Тип | ÐпиÑание |
|---|---|---|
reads | bigint | ÐолиÑеÑÑво байÑ, пÑоÑиÑанное на ÑÑовне Ñайловой ÑиÑÑÐµÐ¼Ñ |
writes | bigint | ÐолиÑеÑÑво байÑ, запиÑанное на ÑÑовне Ñайловой ÑиÑÑÐµÐ¼Ñ |
user_time | double precision | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в полÑзоваÑелÑÑком Ñежиме |
system_time | double precision | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в Ñежиме ÑдÑа |
minflts | bigint | ÐолиÑеÑÑво воÑÑÑановленнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (мÑÐ³ÐºÐ¸Ñ Ð¾Ñибок обÑаÑÐµÐ½Ð¸Ñ Ðº ÑÑÑаниÑам) |
majflts | bigint | ÐолиÑеÑÑво оÑибок обÑаÑÐµÐ½Ð¸Ñ Ðº ÑÑÑаниÑам (жÑÑÑÐºÐ¸Ñ ) |
nswaps | bigint | ÐолиÑеÑÑво обÑаÑений к пÑоÑÑÑанÑÑÐ²Ñ Ð¿Ð¾Ð´ÐºÐ°Ñки |
msgsnds | bigint | ÐолиÑеÑÑво пеÑеданнÑÑ ÑообÑений IPC |
msgrcvs | bigint | ÐолиÑеÑÑво полÑÑеннÑÑ ÑообÑений IPC |
nsignals | bigint | ÐолиÑеÑÑво полÑÑеннÑÑ Ñигналов |
nvcsws | bigint | ÐолиÑеÑÑво «добÑоволÑнÑÑ Â» пеÑеклÑÑений конÑекÑÑа |
nivcsws | bigint | ÐолиÑеÑÑво пÑинÑдиÑелÑнÑÑ Ð¿ÐµÑеклÑÑений конÑекÑÑа |
G.2.6. ФÑнкÑии #
-
pgpro_stats_statements_reset(userid Oid, dbid Oid, queryid bigint, planid bigint, minmax_only boolean) returns timestamp with time zone ФÑнкÑиÑ
pgpro_stats_statements_resetоÑиÑÐ°ÐµÑ Ð²ÑÑ ÑÑаÑиÑÑикÑ, ÑобÑаннÑÑ Ðº ÑÑÐ¾Ð¼Ñ Ð²Ñемени модÑлемpgpro_statsÐ´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ полÑзоваÑÐµÐ»Ñ (userid), Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (dbid), запÑоÑа (queryid) и плана (planid). Ð ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из паÑамеÑÑов Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ подÑазÑмеваеÑÑÑ Ð½Ñлевое знаÑение (непÑименимое огÑаниÑение) и оÑиÑаеÑÑÑ ÑÑаÑиÑÑика, ÑооÑвеÑÑÑвÑÑÑÐ°Ñ Ð´ÑÑгим паÑамеÑÑам. ÐÑли никакой паÑамеÑÑ Ð½Ðµ задан или вÑе паÑамеÑÑÑ Ð¸Ð¼ÐµÑÑ Ð½Ñлевое знаÑение (непÑименимое), оÑиÑаеÑÑÑ Ð²ÑÑ ÑÑаÑиÑÑика. ÐмеÑÑе Ñ Ð¾ÑиÑÑкой вÑей ÑÑаÑиÑÑики вpgpro_stats_statementsÑакже ÑбÑаÑÑваеÑÑÑ ÑÑаÑиÑÑика вpgpro_stats_info. Ðогда Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑаminmax_onlyÑÑÑановлено знаÑениеtrue, ÑбÑаÑÑваÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑолÑко минималÑного и макÑималÑного вÑемени планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑоÑа (Ñ. е. знаÑÐµÐ½Ð¸Ñ ÑÑолбÑовmin_plan_time,max_plan_time,min_exec_timeиmax_exec_time). ÐнаÑениеminmax_onlyпо ÑмолÑÐ°Ð½Ð¸Ñ âfalse. ÐÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего ÑбÑоÑа минималÑнÑÑ /макÑималÑнÑÑ Ð·Ð½Ð°Ñений можно ÑвидеÑÑ Ð² ÑÑолбÑеminmax_stats_sinceпÑедÑÑавлениÑpgpro_stats_statements. ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð²ÑÐµÐ¼Ñ ÑбÑоÑа ÑÑаÑиÑÑики. ÐÑо вÑÐµÐ¼Ñ Ð·Ð°Ð¿Ð¸ÑÑваеÑÑÑ Ð² полеstats_resetпÑедÑÑавлениÑpgpro_stats_infoилиminmax_stats_sinceпÑедÑÑавлениÑpgpro_stats_statements, еÑли ÑооÑвеÑÑÑвÑÑÑий ÑбÑÐ¾Ñ Ð·Ð½Ð°Ñений бÑл дейÑÑвиÑелÑно вÑполнен. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð²ÑполнÑÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели. ÐÑÑгим полÑзоваÑелÑм можно даÑÑ Ð´Ð¾ÑÑÑп к ней, иÑполÑзÑÑGRANT.ÐÑимеÑание
ÐоÑколÑÐºÑ ÑÑаÑиÑÑика в пÑедÑÑавлениÑÑ
pgpro_stats_vacuum_database,pgpro_stats_vacuum_tablesиpgpro_stats_vacuum_indexesÑобиÑаеÑÑÑ ÑдÑом ÑиÑÑемÑ, Ð´Ð»Ñ ÐµÑ ÑбÑоÑа вÑзовиÑе ÑÑнкÑиÑpg_stat_reset( )(за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 26.2.25).-
pgpro_stats_statements(showtext boolean) returns setof record ÐÑедÑÑавление
pgpro_stats_statementsопÑеделÑеÑÑÑ ÐºÐ°Ðº ÑезÑлÑÑÐ°Ñ Ð²Ñзова одноимÑнной ÑÑнкÑии. ФÑнкÑиÑpgpro_stats_statementsможно Ñакже вÑзÑваÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно, а Ñ Ð°ÑгÑменÑомshowtext := falseможно полÑÑиÑÑ ÑезÑлÑÑÐ°Ñ Ð±ÐµÐ· ÑекÑÑа запÑоÑа (Ñо еÑÑÑ Ð² вÑÑ Ð¾Ð´Ð½Ð¾Ð¼ аÑгÑменÑе, ÑооÑвеÑÑÑвÑÑÑем ÑÑолбÑÑ Ð¿ÑедÑÑавлениÑquery, бÑÐ´ÐµÑ Ð²ÑдаваÑÑÑÑ null). ÐÑа возможноÑÑÑ Ð¿ÑедÑÑмоÑÑена Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð²Ð½ÐµÑние ÑÑедÑÑва мониÑоÑинга могли не загÑÑжаÑÑ ÐºÐ°Ð¶Ð´Ñй Ñаз ÑекÑÑ Ð·Ð°Ð¿ÑоÑов, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно обÑÑмнÑм. СÑедÑÑво мониÑоÑинга Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑÑо один Ñаз запомниÑÑ ÑекÑÑ Ð·Ð°Ð¿ÑоÑов Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ запиÑи в пÑедÑÑавлении (как ÑÑо и Ð´ÐµÐ»Ð°ÐµÑ Ñам модÑлÑpgpro_stats) и заÑем запÑаÑиваÑÑ ÑекÑÑ Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ Ð·Ð°Ð¿ÑоÑов ÑолÑко пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи. Так как ÑеÑÐ²ÐµÑ ÑÐ¾Ñ ÑанÑÐµÑ ÑекÑÑ Ð·Ð°Ð¿ÑоÑов в Ñайле, пÑи Ñаком Ð¿Ð¾Ð´Ñ Ð¾Ð´Ðµ поÑÑоÑнное ÑÑение ÑодеÑжимогоpgpro_stats_statementsбÑÐ´ÐµÑ ÑоздаваÑÑ Ð¼ÐµÐ½ÑÑÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° ввод-вÑвод.-
pgpro_stats_statements_filtered(showtext boolean, userid oid, dboid oid, queryid bigint, planid bigint) returns setof record ФÑнкÑиÑ
pgpro_stats_statements_filteredпозволÑÐµÑ Ð¾ÑÑилÑÑÑоваÑÑ ÑÑаÑиÑÑикÑ, аналогиÑнÑÑ Ð²Ñводимой в пÑедÑÑавленииpgpro_stats_statements, по Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð»Ð¸ неÑколÑким полÑм, задаваемÑм паÑамеÑÑамиuserid,dbid,queryidиplanid. Ð ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из паÑамеÑÑов Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ подÑазÑмеваеÑÑÑ Ð½Ñлевое знаÑение (непÑименимое огÑаниÑение) и возвÑаÑаеÑÑÑ ÑÑаÑиÑÑика, ÑооÑвеÑÑÑвÑÑÑÐ°Ñ Ð´ÑÑгим паÑамеÑÑам. ÐаÑамеÑÑshowtextпо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеtrue, а задаваÑshowtext := false, можно полÑÑиÑÑ ÑезÑлÑÑÐ°Ñ Ð±ÐµÐ· ÑекÑÑа запÑоÑа, как обÑÑÑнÑеÑÑÑ Ð´Ð»Ñ ÑÑнкÑииpgpro_stats_statements. ÐоÑколÑÐºÑ ÑÑнкÑиÑpgpro_stats_statements_filteredвÑбиÑÐ°ÐµÑ ÑолÑко нÑжнÑе запиÑи, она возвÑаÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð±ÑÑÑÑее, Ñем ÑледÑÑÑий запÑоÑ:SELECT * FROM pgpro_stats_statements WHERE userid = ? AND dbid = ? AND queryid = ? AND planid = ?;
-
pgpro_stats_info() returns record ÐÑедÑÑавление
pgpro_stats_infoпоÑÑÑоено на базе одноимÑнной ÑÑнкÑии, коÑоÑÑÑ Ð¿Ð¾Ð»ÑзоваÑели Ñакже могÑÑ Ð²ÑзÑваÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно.-
pgpro_stats_totals_reset(type text, id bigint) returns timestamp with timezone ФÑнкÑиÑ
pgpro_stats_totals_resetоÑиÑÐ°ÐµÑ Ð²ÑÑ ÑÑаÑиÑÑикÑ, ÑобÑаннÑÑ Ðº ÑÑÐ¾Ð¼Ñ Ð²Ñемени модÑлемpgpro_statsÐ´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñипа (type) и иденÑиÑикаÑоÑа (id) обÑекÑа. Ð ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¿Ð°ÑамеÑÑов или когда паÑамеÑÑtypeÑавен0, оÑиÑаеÑÑÑ Ð²ÑÑ ÑÑаÑиÑÑика. ÐÑли в паÑамеÑÑеtypeпеÑедаÑÑÑÑ ÐºÐ¾ÑÑекÑнÑй Ñип обÑекÑа, Ñо в ÑлÑÑае ÑказаниÑidоÑиÑаеÑÑÑ ÑÑаÑиÑÑика ÑолÑко Ð´Ð»Ñ Ð¾Ð±ÑекÑа Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм иденÑиÑикаÑоÑом, а в оÑÑÑÑÑÑвие Ñакого ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ â Ð´Ð»Ñ Ð²ÑÐµÑ Ð¾Ð±ÑекÑов заданного Ñипа. ÐÑли же паÑамеÑÑtypeне задаÑÑ ÑÑÑеÑÑвÑÑÑий Ñип обÑекÑа, Ð½Ð¸ÐºÐ°ÐºÐ°Ñ ÑÑаÑиÑÑика не оÑиÑаеÑÑÑ. ÐÑа ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð²ÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾ÑиÑÑки. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð²ÑполнÑÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели. ÐÑÑгим полÑзоваÑелÑм можно даÑÑ Ð´Ð¾ÑÑÑп к ней, иÑполÑзÑÑGRANT.-
pgpro_stats_totals() returns setof record ÐÑедÑÑавление
pgpro_stats_totalsпоÑÑÑоено на базе одноимÑнной ÑÑнкÑии, коÑоÑÑÑ Ð¿Ð¾Ð»ÑзоваÑели Ñакже могÑÑ Ð²ÑзÑваÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно.-
pgpro_stats_metrics() returns setof record ÐпÑеделÑÐµÑ Ð¿ÑедÑÑавление
pgpro_stats_metrics, опиÑанное подÑобно в ТаблиÑе G.77.-
pgpro_stats_get_archiver() returns setof record ÐпÑеделÑÐµÑ Ð¿ÑедÑÑавление
pgpro_stats_archiver, опиÑанное подÑобно в ТаблиÑе G.78.-
pgpro_stats_wal_sender_crc_errors() returns bigint Ð Postgres Pro Enterprise возвÑаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво оÑибок, обнаÑÑженнÑÑ Ð¿ÑоÑеÑÑом-пеÑедаÑÑиком WAL, когда паÑамеÑÑ
wal_sender_check_crcвклÑÑÑн (on). Ð Postgres Pro Standard возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð»Ñ. ÐбÑаÑиÑе внимание, ÑÑо пÑи пеÑезапÑÑке клаÑÑеÑа ÑÑÐ¾Ñ ÑÑÑÑÑик ÑбÑаÑÑваеÑÑÑ Ð´Ð¾ нÑлÑ.-
pgpro_stats_vacuum_database(dboid oid) returns setof record ÐпÑеделÑÐµÑ ÑÑÑÐ¾ÐºÑ Ð¿ÑедÑÑавлениÑ
pgpro_stats_vacuum_database, коÑоÑое подÑобно опиÑано в ТаблиÑе G.79, Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ñказанной вdboid.-
pgpro_stats_vacuum_tables(dboid oid, relid oid) returns setof record ÐпÑеделÑÐµÑ ÑÑÑÐ¾ÐºÑ Ð¿ÑедÑÑавлениÑ
pgpro_stats_vacuum_tables, коÑоÑое подÑобно опиÑано в ТаблиÑе G.80, Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ñказанной вdboid, и ÑаблиÑÑ, Ñказанной вreloid. ÐÑлиreloid= 0, возвÑаÑаеÑÑÑ ÑÑаÑиÑÑика Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑаблиÑÑ Ð² Ñказанной базе даннÑÑ .-
pgpro_stats_vacuum_indexes(dboid oid, relid oid) returns setof record ÐпÑеделÑÐµÑ ÑÑÑÐ¾ÐºÑ Ð¿ÑедÑÑавлениÑ
pgpro_stats_vacuum_indexes, коÑоÑое подÑобно опиÑано в ТаблиÑе G.81, Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ñказанной вdboid, и ÑаблиÑÑ, Ñказанной вreloid. ÐÑлиreloid= 0, возвÑаÑаеÑÑÑ ÑÑаÑиÑÑика Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ индекÑа в Ñказанной базе даннÑÑ .
G.2.6.1. ФÑнкÑии Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑедÑÑавлений, ÑмÑлиÑÑÑÑÐ¸Ñ Ð´ÑÑгие ÑаÑÑиÑÐµÐ½Ð¸Ñ #
Ð ÑаÑÑиÑении pgpro_stats пÑедÑÑмоÑÑена возможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑедÑÑавлений, аналогиÑнÑÑ
Ñем, коÑоÑÑе ÑоздаÑÑÑÑ ÑаÑÑиÑениÑми pg_stat_statements и pg_stat_kcache. Ðожно ÑоздаÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_statements, pg_stat_statements_info, pg_stat_kcache и pg_stat_kcache_detail. Ðаждое пÑедÑÑавление ÑоздаÑÑÑÑ Ð² веÑÑии Postgres Pro, ÑолÑко еÑли оно доÑÑÑпно в ÑаÑÑиÑении pg_stat_statements/pg_stat_kcache Ð´Ð»Ñ Ñой же веÑÑии Postgres Pro/PostgreSQL. ÐапÑимеÑ, пÑедÑÑавление pg_stat_statements_info ÑоздаÑÑÑÑ ÑолÑко в веÑÑиÑÑ
Postgres Pro 14 и вÑÑе. ÐÑи пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ ÑледÑÑÑими ÑÑнкÑиÑми:
-
pgpro_stats_create_pg_stat_statements_compatible_views() returns void СоздаÑÑ Ð¿ÑедÑÑавлениÑ
pg_stat_statementsиpg_stat_statements_info.-
pgpro_stats_create_pg_stat_kcache_compatible_views() returns void СоздаÑÑ Ð¿ÑедÑÑавлениÑ
pg_stat_kcacheиpg_stat_kcache_detail.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑи ÑÑнкÑии могÑÑ Ð²ÑполнÑÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели. ÐÑÑгим полÑзоваÑелÑм можно даÑÑ Ð´Ð¾ÑÑÑп к ним, иÑполÑзÑÑ GRANT.
ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑедÑÑавлений pg_stat_statements* необÑ
одимо ÑдалиÑÑ ÑаÑÑиÑение pg_stat_statements, еÑли оно бÑло ÑÑÑановлено Ñанее, и вÑзваÑÑ ÑÑнкÑиÑ:
select pgpro_stats_create_pg_stat_statements_compatible_views();
ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑедÑÑавлений pg_stat_kcache* необÑ
одимо ÑдалиÑÑ ÑаÑÑиÑение pg_stat_kcache, еÑли оно бÑло ÑÑÑановлено Ñанее, и вÑзваÑÑ ÑÑнкÑиÑ:
select pgpro_stats_create_pg_stat_kcache_compatible_views();
ÐоÑле ÑÑого Ñ ÑозданнÑми пÑедÑÑавлениÑми можно ÑабоÑаÑÑ Ñак же, как еÑли Ð±Ñ Ð±Ñли ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ ÑооÑвеÑÑÑвÑÑÑие ÑаÑÑиÑениÑ.
УдалиÑÑ Ñанее ÑозданнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ обÑÑнÑм ÑпоÑобом:
drop view pg_stat_statements; drop view pg_stat_statements_info; drop view pg_stat_kcache; drop view pg_stat_kcache_detail;
G.2.7. ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии #
G.2.7.1. ÐÑновнÑе паÑамеÑÑÑ #
pgpro_stats.max(integer) #pgpro_stats ÑобиÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ ÑолÑко о наиболее ÑаÑÑо вÑÑÑеÑаÑÑÐ¸Ñ ÑÑ Ð·Ð°Ð¿ÑоÑÐ°Ñ . Чем менÑÑе ÑаÑÑоÑа поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐºÐ¾ÑоÑого запÑоÑа во вÑÐµÐ¼Ñ ÑабоÑÑ ÑеÑвеÑа, Ñем менÑÑе веÑоÑÑноÑÑÑ ÐµÐ³Ð¾ Ð¿Ð¾Ð¿Ð°Ð´Ð°Ð½Ð¸Ñ Ð² ÑÑаÑиÑÑикÑ. Редко возникаÑÑие запÑоÑÑ Ð±ÑдÑÑ Ð¿Ð¾ÑÑи ÑÑÐ°Ð·Ñ Ð²ÑÑеÑнÑÑÑÑÑ Ð¸Ð· ÑÑаÑиÑÑики более ÑаÑÑÑми. ÐаÑамеÑÑ
pgpro_stats.maxзадаÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло ÑазлиÑнÑÑ ÑникалÑнÑÑ Ð¿Ð°Ñ (ноÑмализованнÑй ÑекÑÑ Ð·Ð°Ð¿ÑоÑа, ноÑмализованнÑй ÑекÑÑ Ð¿Ð»Ð°Ð½Ð°), оÑÑлеживаемÑÑ pgpro_stats (Ñо еÑÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло ÑÑÑок в пÑедÑÑавленииpgpro_stats_statements). Чем вÑÑе знаÑение ÑÑого паÑамеÑÑа, Ñем о болÑÑем ÑиÑле запÑоÑов инÑоÑмаÑÐ¸Ñ ÑÐ¾Ñ ÑаниÑÑÑ, но Ñеной ÑÐ½Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи ÑеÑвеÑа как во вÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ð¸ на блокиÑÐ¾Ð²ÐºÐ°Ñ Ð¿Ñи ÑабоÑе Ñ ÑаблиÑей ÑÑаÑиÑÑики в ÑазделÑемой памÑÑи, Ñак и пÑи пеÑиодиÑеÑкой ÑбоÑке мÑÑоÑа в Ñайле Ñ ÑекÑÑами запÑоÑов и планов. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 5000. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко пÑи запÑÑке ÑеÑвеÑа.pgpro_stats.max_totals(integer) #ÐаÑамеÑÑ
pgpro_stats.max_totalsзадаÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло обÑекÑов, оÑÑлеживаемÑÑ Ð¼Ð¾Ð´Ñлем (Ñо еÑÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло ÑÑÑок в пÑедÑÑавленииpgpro_stats_totals). Ðогда колиÑеÑÑво наблÑдаемÑÑ Ð¾Ð±ÑекÑов пÑевÑÑÐ°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ, инÑоÑмаÑÐ¸Ñ Ð¾ наименее акÑивно иÑполÑзÑемÑÑ Ð¾Ð±ÑекÑÐ°Ñ ÑдалÑеÑÑÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 1000. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко пÑи запÑÑке ÑеÑвеÑа.pgpro_stats.track(enum) #ÐаÑамеÑÑ
pgpro_stats.trackопÑеделÑеÑ, какие опеÑаÑоÑÑ Ð±ÑдÑÑ Ð¾ÑÑлеживаÑÑÑÑ Ð¼Ð¾Ð´Ñлем. Со знаÑениемtopоÑÑлеживаÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ Ð²ÐµÑÑ Ð½ÐµÐ³Ð¾ ÑÑÐ¾Ð²Ð½Ñ (Ñе, ÑÑо непоÑÑедÑÑвенно вÑполнÑÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñами), Ñо знаÑениемallÑакже оÑÑлеживаÑÑÑÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñе опеÑаÑоÑÑ (напÑимеÑ, опеÑаÑоÑÑ, вÑзÑваемÑе внÑÑÑи ÑÑнкÑий) Ñ ÑÑовнем вложенноÑÑи не более 100, знаÑениеnoneполноÑÑÑÑ Ð¾ÑклÑÑÐ°ÐµÑ ÑÐ±Ð¾Ñ ÑÑаÑиÑÑики по опеÑаÑоÑам. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âtop. ÐзменÑÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_utility(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_utilityопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ ÑÑÐ¾Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¾ÑÑлеживаÑÑ ÑлÑжебнÑе командÑ. СлÑжебнÑми командами ÑÑиÑаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, оÑлиÑнÑе оÑSELECT,INSERT,UPDATEиDELETE. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_planning(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_planningопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ ÑÑÐ¾Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¾ÑÑлеживаÑÑ Ð¾Ð¿ÐµÑаÑии планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¸Ñ Ð´Ð»Ð¸ÑелÑноÑÑÑ. ÐклÑÑение ÑÑого паÑамеÑÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к замеÑÐ½Ð¾Ð¼Ñ ÑÐ½Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи, оÑобенно когда во множеÑÑве одновÑеменнÑÑ ÑеанÑов вÑполнÑÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾Ð¹ ÑÑÑÑкÑÑÑой запÑоÑов, в ÑезÑлÑÑаÑе Ñего ÑÑи ÑеанÑÑ Ð¿ÑÑаÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно измениÑÑ Ð¾Ð´Ð½Ð¸ и Ñе же запиÑи вpgpro_stats_statements. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âoff(вÑкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_totals(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_totalsопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по обÑекÑам (на ÑÑовне клаÑÑеÑа, баз, полÑзоваÑелей и Ñ. д.). ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_cluster(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_clusterопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по клаÑÑеÑÑ Ð² Ñелом. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_databases(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_databasesопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по базам даннÑÑ . ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_users(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_usersопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по полÑзоваÑелÑм. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_applications(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_applicationsопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по пÑиложениÑм (по именам, задаваемÑм в application_name). ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_client_addr(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_client_addrопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по IP-адÑеÑам клиенÑов. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.track_backends(boolean) #ÐаÑамеÑÑ
pgpro_stats.track_backendsопÑеделÑеÑ, бÑÐ´ÐµÑ Ð»Ð¸ агÑегиÑоваÑÑÑÑ ÑÑаÑиÑÑика по обÑлÑживаÑÑим пÑоÑеÑÑам. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.save(boolean) #ÐаÑамеÑÑ
pgpro_stats.saveопÑеделÑеÑ, должна ли ÑÑаÑиÑÑика опеÑаÑоÑов ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð¿Ð¾Ñле пеÑезагÑÑзки ÑеÑвеÑа. ÐÑли он оÑклÑÑÑн (Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеoff), ÑÑаÑиÑÑика не ÑÐ¾Ñ ÑанÑеÑÑÑ Ð¿Ñи оÑÑановке ÑеÑвеÑа и не пеÑезагÑÑжаеÑÑÑ Ð¿Ñи запÑÑке. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âon(вкл.). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко вpostgresql.confили в командной ÑÑÑоке ÑеÑвеÑа.pgpro_stats.plan_format(text) #ÐаÑамеÑÑ
pgpro_stats.plan_formatвÑбиÑÐ°ÐµÑ ÑоÑÐ¼Ð°Ñ Ð¿Ð»Ð°Ð½Ð° запÑоÑа в вÑводеEXPLAIN. ÐозможнÑе знаÑениÑ:text,xml,jsonиyaml. ÐнаÑение по ÑмолÑаниÑ:text. ÐÑи изменении ÑÑого паÑамеÑÑа ÑÑебÑеÑÑÑ Ð¿ÐµÑезапÑÑÑиÑÑ ÑеÑвеÑ.pgpro_stats.enable_profile(boolean) #ÐаÑамеÑÑ
pgpro_stats.enable_profileвклÑÑÐ°ÐµÑ Ð¿ÑоÑилиÑование ÑобÑÑий Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ оÑделÑнÑм опеÑаÑоÑам. ÐнаÑение по ÑмолÑаниÑ:true(вкл.). ÐÑи изменении ÑÑого паÑамеÑÑа ÑÑебÑеÑÑÑ Ð¿ÐµÑезапÑÑÑиÑÑ ÑеÑвеÑ.pgpro_stats.query_sample_rate(float) #Так как pgpro_stats ÑобиÑÐ°ÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ ÑолÑко о наиболее ÑаÑÑо вÑÑÑеÑаÑÑÐ¸Ñ ÑÑ Ð·Ð°Ð¿ÑоÑÐ°Ñ , а Ñедко вÑÑÑеÑаÑÑиеÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð² Ð½ÐµÑ Ð½Ðµ попадаÑÑ, Ñо еÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑнизиÑÑ Ð²Ð»Ð¸Ñние ÑбоÑа ÑÑаÑиÑÑики на пÑоизводиÑелÑноÑÑÑ ÑеÑвеÑа. ÐÑо вÑполнимо, поÑÐ¾Ð¼Ñ ÑÑо ÑеÑез некоÑоÑое вÑÐµÐ¼Ñ Ð¿Ð¾Ñле наÑала ÑбоÑа пÑакÑиÑеÑки вÑÑ ÑÑаÑиÑÑика, ÑобÑÐ°Ð½Ð½Ð°Ñ Ð¼Ð¾Ð´Ñлем, бÑÐ´ÐµÑ ÑоÑÑоÑÑÑ Ð¸Ð· запÑоÑов, ÑаÑÑоÑа поÑÐ²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑÑÑ Ð½Ðµ оÑÐµÐ½Ñ Ð¼Ð°Ð»Ð°, и в далÑнейÑем множеÑÑво Ñипов ÑобÑаннÑÑ Ð·Ð°Ð¿ÑоÑов бÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ Ñлабо, еÑли ÑÑÑановлено доÑÑаÑоÑное знаÑение паÑамеÑÑа pgpro_stats.max, а ÑÑеднÑÑ ÑаÑÑоÑа поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñновной маÑÑÑ ÑаÑÑÑÑ Ð·Ð°Ð¿ÑоÑов не пÑеÑеÑÐ¿ÐµÐ²Ð°ÐµÑ Ð·Ð½Ð°ÑиÑелÑнÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ñ Ð¿ÐµÑиодами, коÑоÑÑе пÑевÑÑаÑÑ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ð±Ð»ÑдениÑ. Ð ÑÐ°ÐºÐ¾Ð¼Ñ "ÑÑÑоÑвÑемÑÑÑ" множеÑÑÐ²Ñ ÑобÑаннÑÑ Ð·Ð°Ð¿ÑоÑов Ñакже можно пÑийÑи, ÑвелиÑив вÑÐµÐ¼Ñ ÑбоÑа, напÑимеÑ, в два Ñаза, но пÑи ÑÑом забиÑÐ°Ñ Ð² ÑÑаÑиÑÑÐ¸ÐºÑ Ð½Ðµ каждÑй запÑоÑ, а каждÑй вÑоÑой, или же ÑаÑÑмаÑÑÐ¸Ð²Ð°Ñ ÐºÐ°Ð¶Ð´Ñй запÑоÑ, но забиÑÐ°Ñ ÐµÐ³Ð¾ в ÑÑаÑиÑÑÐ¸ÐºÑ ÑлÑÑайно, Ñ Ð½ÐµÐºÐ¾ÑоÑой заданной веÑоÑÑноÑÑÑÑ. Рданном ÑлÑÑае â 0.5. ÐÑо позволÑÐµÑ Ð·Ð°Ð¼ÐµÑно ÑнизиÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð½Ð° ÑеÑÐ²ÐµÑ Ð·Ð° ÑÑÑÑ ÑвелиÑÐµÐ½Ð¸Ñ Ð²Ñемени ÑбоÑа ÑÑаÑиÑÑики. РеализоваÑÑ Ð´Ð°Ð½Ð½Ñй Ð¿Ð¾Ð´Ñ Ð¾Ð´ можно пÑи помоÑи паÑамеÑÑа
pgpro_stats.query_sample_rate. ÐапÑимеÑ, пÑи знаÑенииpgpro_stats.query_sample_rate, Ñавном 0.2 (1/5), за 5 ÑаÑов ÑабоÑÑ ÑеÑвеÑа пÑи вÑполнении ÑказаннÑÑ Ð²ÑÑе ÑÑловий бÑÐ´ÐµÑ ÑобÑана ÑÐ°ÐºÐ°Ñ Ð¶Ðµ ÑÑаÑиÑÑика, как и пÑиpgpro_stats.query_sample_rate= 1 за 1 ÑÐ°Ñ ÑабоÑÑ.Ðожно ÑкÑпеÑименÑалÑно подобÑаÑÑ Ð·Ð½Ð°Ñение паÑамеÑÑа
pgpro_stats.query_sample_rate. ÐÑбеÑиÑе вÑÐµÐ¼Ñ Ð½Ð°Ð±Ð»ÑÐ´ÐµÐ½Ð¸Ñ Ð² завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð½ÐºÑеÑнÑÑ ÑÑловий, в коÑоÑÑÑ ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐапÑимеÑ, один ÑаÑ. ÐоÑмоÑÑиÑе ÑобÑаннÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ ÑеÑез ÑаÑ, а заÑем, не ÑбÑаÑÑÐ²Ð°Ñ ÐµÑ, еÑÑ ÑеÑез ÑаÑ. ÐÑли ÑазниÑа бÑÐ´ÐµÑ Ð² оÑновном не в Ñипе ÑобÑаннÑÑ Ð·Ð°Ð¿ÑоÑов, а в ÑвелиÑении Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва (calls), Ñо можно безопаÑно ÑменÑÑиÑÑ Ð·Ð½Ð°Ñениеpgpro_stats.query_sample_rateв два Ñаза. ÐÑли же бÑÐ´ÐµÑ Ð½Ð°Ð±Ð»ÑдаÑÑÑÑ Ð·Ð°Ð¼ÐµÑÐ½Ð°Ñ ÑазниÑа в ÑÐ¸Ð¿Ð°Ñ ÑобÑаннÑÑ Ð·Ð°Ð¿ÑоÑов, Ñо нÑжно ÑвелиÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ð±Ð»ÑÐ´ÐµÐ½Ð¸Ñ Ð¸/или паÑамеÑÑpgpro_stats.max.ÐнаÑение по ÑмолÑаниÑ:
1.0. ÐÑи изменении ÑÑого паÑамеÑÑа ÑÑебÑеÑÑÑ Ð¿ÐµÑезапÑÑÑиÑÑ ÑеÑвеÑ.pgpro_stats.profile_period(integer) #ÐаÑамеÑÑ
pgpro_stats.profile_periodзадаÑÑ Ð¸Ð½ÑеÑвал (в миллиÑекÑÐ½Ð´Ð°Ñ ) Ð´Ð»Ñ ÑбоÑа инÑоÑмаÑии о ÑобÑÑиÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ. ÐнаÑение по ÑмолÑаниÑ:10. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.metrics_buffer_size(integer) #ÐаÑамеÑÑ
pgpro_stats.metrics_buffer_sizeзадаÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾Ð»ÑÑевого бÑÑеÑа Ð´Ð»Ñ ÑбоÑа ÑÑаÑиÑÑиÑеÑÐºÐ¸Ñ Ð¼ÐµÑÑик. ÐнаÑение по ÑмолÑаниÑ:16kB. ÐÑи изменении ÑÑого паÑамеÑÑа ÑÑебÑеÑÑÑ Ð¿ÐµÑезапÑÑÑиÑÑ ÑеÑвеÑ.pgpro_stats.metrics_workers(integer) #ÐаÑамеÑÑ
pgpro_stats.metrics_workersзадаÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, коÑоÑÑе бÑдÑÑ ÑобиÑаÑÑ ÑÑаÑиÑÑиÑеÑкие меÑÑики. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð±Ð¾Ð»ÑÑе или Ñавен 2, один из ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð³Ð»Ð°Ð²Ð½Ñм, ÑаÑпÑеделÑÑÑим запÑоÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð²Ñеми оÑÑалÑнÑми. ÐÑли колиÑеÑÑво ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов огÑаниÑиваеÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼, он бÑÐ´ÐµÑ Ð¿ÐµÑезапÑÑкаÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº ÑазнÑм базам даннÑÑ . Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñавен0, ÑÐ±Ð¾Ñ Ð¼ÐµÑÑик оÑклÑÑаеÑÑÑ. ÐнаÑение по ÑмолÑаниÑ:2. ÐÑи изменении ÑÑого паÑамеÑÑа ÑÑебÑеÑÑÑ Ð¿ÐµÑезапÑÑÑиÑÑ ÑеÑвеÑ.pgpro_stats.stats_temp_directory(string) #ÐаÑамеÑÑ
pgpro_stats.stats_temp_directoryзадаÑÑ ÐºÐ°Ñалог Ñ Ð²Ð½ÐµÑним Ñайлом Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑекÑÑов запÑоÑов. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑÑÑ Ð¾Ñ ÐºÐ°Ñалога даннÑÑ Ð¸Ð»Ð¸ абÑолÑÑнÑй пÑÑÑ. ÐÑи изменении ÑÑого паÑамеÑÑа ÑÑебÑеÑÑÑ Ð¿ÐµÑезапÑÑÑиÑÑ ÑеÑвеÑ.
G.2.7.2. ÐаÑамеÑÑÑ, опÑеделÑÑÑие меÑÑики #
СледÑÑÑие паÑамеÑÑÑ Ð¿ÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ
меÑÑик, коÑоÑÑе бÑÐ´ÐµÑ ÑобиÑаÑÑ pgpro_stats. ÐÐ¾Ð¼ÐµÑ N в имени паÑамеÑÑа ÑлÑÐ¶Ð¸Ñ ÑникалÑнÑм иденÑиÑикаÑоÑом меÑÑики, к коÑоÑой бÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÐµÐ¼Ð¾Ðµ знаÑение; он должен бÑÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑм и ÑникалÑнÑм ÑÑеди вÑеÑ
меÑÑик.
ÐÑли Ð²Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑеÑе паÑамеÑÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ меÑÑики, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пеÑезапÑÑÑиÑÑ ÑеÑвеÑ, ÑÑÐ¾Ð±Ñ ÑÑо опÑеделение наÑало дейÑÑвоваÑÑ.
pgpro_stats.metric_(N_nametext)ÐÐ¼Ñ Ð¼ÐµÑÑики Ñ Ð½Ð¾Ð¼ÐµÑом
N. ÐÑо Ð¸Ð¼Ñ Ð±ÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð² ÑÑолбÑеmetric_nameпÑедÑÑавлениÑpgpro_stats_metrics.pgpro_stats.metric_(N_querytext)ТекÑÑ Ð·Ð°Ð¿ÑоÑа, опÑеделÑÑÑий знаÑение ÑобиÑаемой меÑÑики.
pgpro_stats.metric_(N_periodinteger)ÐнÑеÑвал, Ñ ÐºÐ¾ÑоÑÑм бÑÐ´ÐµÑ ÑобиÑаÑÑÑÑ Ð¼ÐµÑÑика
N, в миллиÑекÑÐ½Ð´Ð°Ñ . ÐнаÑение по ÑмолÑаниÑ: 60000 mspgpro_stats.metric_(N_dbtext)СпиÑок баз даннÑÑ , в коÑоÑÑÑ Ð±ÑÐ´ÐµÑ ÑобиÑаÑÑÑÑ Ð¼ÐµÑÑика
N. Ðмена баз даннÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑазделÑÑÑÑÑ Ð·Ð°Ð¿ÑÑÑми. ЧÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ Ð²Ñе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² клаÑÑеÑе, за иÑклÑÑением баз-Ñаблонов, можно ÑказаÑÑ Ð·Ð½Ð°Ñение*. ÐÑли Ð²Ñ Ñакже Ñ Ð¾ÑиÑе анализиÑоваÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð² Ð±Ð°Ð·Ð°Ñ -ÑÐ°Ð±Ð»Ð¾Ð½Ð°Ñ , Ð¸Ñ Ð½Ñжно пеÑеÑиÑлиÑÑ Ñвно.pgpro_stats.metric_(N_usertext)ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑого бÑÐ´ÐµÑ ÑобиÑаÑÑÑÑ Ð¼ÐµÑÑика
N. ÐÑÐ¾Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð´Ð¾ÑÑÑп к базе даннÑÑ , в коÑоÑой бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð´Ð»Ñ ÑбоÑа меÑÑики.
G.2.8. ТÑаÑÑиÑовка ÑеанÑов пÑиложений #
Ð ÑаÑÑиÑении pgpro_stats Ñеализована ÑÑаÑÑиÑовка ÑеанÑов пÑиложений. Ðна оÑнована на ÑилÑÑÑаÑ
, коÑоÑÑе запÑÑкаÑÑ Ð¿ÑоÑоколиÑование вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов, ÑооÑвеÑÑÑвÑÑÑиÑ
ÑÑловиÑм ÑилÑÑÑаÑии. ÐапÑоÑÑ Ð¸ вÑвод EXPLAIN Ð´Ð»Ñ Ð½Ð¸Ñ
запиÑÑваÑÑÑÑ Ð² Ñак назÑваемÑе ÑÐ°Ð¹Ð»Ñ ÑÑаÑÑиÑовки, ÑказаннÑе полÑзоваÑелем, или в Ñайл ÑиÑÑемного жÑÑнала (еÑли Ñайл ÑÑаÑÑиÑовки не Ñказан). ФилÑÑÑÑ Ñ
ÑанÑÑÑÑ Ð² ÑаблиÑе, наÑ
одÑÑейÑÑ Ð² обÑей памÑÑи. СÑÑоки ÑÑой ÑаблиÑÑ ÑооÑвеÑÑÑвÑÑÑ ÑилÑÑÑам, а ÑÑолбÑÑ ÑодеÑÐ¶Ð°Ñ ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑилÑÑÑаÑии и паÑамеÑÑÑ, Ñ ÐºÐ¾ÑоÑÑми вÑзÑваеÑÑÑ EXPLAIN (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº EXPLAIN). ЧÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ ÑÑаÑÑиÑÐ¾Ð²ÐºÑ Ð·Ð°Ð¿ÑоÑов, ÑледÑÐµÑ Ð·Ð°Ð¿Ð¾Ð»Ð½Ð¸ÑÑ ÑÑÑ ÑаблиÑÑ ÑилÑÑÑами.
Ðак ÑолÑко админиÑÑÑаÑÐ¾Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ ÑилÑÑÑ Ð² каком-либо ÑеанÑе, вÑе поÑледÑÑÑие вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов, ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ ÑÑловиÑм ÑилÑÑÑа, бÑдÑÑ ÑÑаÑÑиÑоваÑÑÑÑ Ð²Ñеми ÑеанÑами ÑкземплÑÑа СУÐРбез Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи пеÑезапÑÑка ÑеÑвеÑа. ÐÑÑгими Ñловами, ÑилÑÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ добавлÑÑÑ, ÑдалÑÑÑ Ð¸Ð»Ð¸ изменÑÑÑ Â«Ð½Ð° леÑÑ», и ÑÑаÑÑиÑовка Ñ ÑÑими ÑилÑÑÑами ÑÑÐ°Ð·Ñ Ð¶Ðµ наÑнÑÑÑÑ Ð´Ð»Ñ ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð¸ бÑдÑÑÐ¸Ñ ÑеанÑов.
ÐÑимеÑание
ÐпеÑаÑии добавлениÑ, ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑилÑÑÑов не ÑвлÑÑÑÑÑ ÑÑанзакÑионнÑми. ÐÐ·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑаблиÑÑ ÑилÑÑÑов не оÑменÑÑÑÑÑ Ð²Ð¼ÐµÑÑе Ñ ÑÑанзакÑией, в коÑоÑой ÑÑи Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ñли ÑделанÑ.
СÑолбÑÑ ÑаблиÑÑ, в коÑоÑой Ñ ÑанÑÑÑÑ ÑилÑÑÑÑ, Ñакже назÑваÑÑÑÑ Ð°ÑÑибÑÑами ÑилÑÑÑов. Ðни Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.83.
ТаблиÑа G.83. ÐÑÑибÑÑÑ ÑилÑÑÑов
| Name | Тип | ÐпиÑание |
|---|---|---|
filter_id | integer | УникалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑилÑÑÑа, коÑоÑÑй авÑомаÑиÑеÑки пÑиÑваиваеÑÑÑ ÑилÑÑÑÑ Ð¿Ñи его Ñоздании, нÑмеÑаÑÐ¸Ñ Ð½Ð°ÑинаеÑÑÑ Ñ 1. |
active | boolean | ÐÑи знаÑении false ÑилÑÑÑ Ð½Ðµ акÑивен, Ñо еÑÑÑ Ð·Ð°Ð¿ÑоÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑÑÐ¾Ð¼Ñ ÑилÑÑÑÑ, не ÑегиÑÑÑиÑÑÑÑÑÑ. Ðо ÑмолÑаниÑ: true. |
alias | name | ÐÐ¼Ñ ÑилÑÑÑа, коÑоÑое можно ÑказаÑÑ Ð´Ð»Ñ ÑдобÑÑва. ÐоказÑваеÑÑÑ ÑолÑко в вÑводе ÑÑнкÑии pgpro_stats_trace_show(). Ðо ÑмолÑаниÑ: пÑÑÑÐ°Ñ ÑÑÑока. |
tracefile | name | ÐÐ¼Ñ Ñайла ÑÑаÑÑиÑовки, в коÑоÑом ÑегиÑÑÑиÑÑÑÑÑÑ Ð·Ð°Ð¿ÑоÑÑ, ÑооÑвеÑÑÑвÑÑÑие ÑилÑÑÑÑ, и вÑвод EXPLAIN Ð´Ð»Ñ Ð½Ð¸Ñ
. ÐÑли ÑÑо Ð¸Ð¼Ñ Ð½Ðµ Ñказано, запиÑÑ Ð²ÐµÐ´ÑÑÑÑ Ð² ÑиÑÑемнÑй жÑÑнал Ñ ÑÑовнем, ÑказаннÑм в pgpro_stats.trace_log_level. Ð¤Ð°Ð¹Ð»Ñ ÑÑаÑÑиÑовки ÑоздаÑÑÑÑ Ð² каÑалоге и имеÑÑ ÑаÑÑиÑение trace. |
pid | integer | ÐденÑиÑикаÑÐ¾Ñ Ð¾Ð±ÑлÑживаÑÑего пÑоÑеÑÑа, коÑоÑÑй вÑполнÑÐµÑ ÑÑÐ¾Ñ Ð¾Ð¿ÐµÑаÑÐ¾Ñ |
database_name | name | ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑой вÑполнÑеÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ |
client_addr | name | IP-адÑÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñа, подклÑÑÑнного к ÑÑÐ¾Ð¼Ñ Ð¾Ð±ÑлÑживаÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑÑ |
application_name | name | ÐÐ¼Ñ Ð¿ÑиложениÑ, вÑзвавÑего вÑполнение опеÑаÑоÑа |
username | name | ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, вÑполнÑÑÑего опеÑаÑÐ¾Ñ |
queryid | bigint | ÐнÑÑÑенний Ñ ÐµÑ-код, вÑÑиÑленнÑй Ð´Ð»Ñ Ð´ÐµÑева ÑазбоÑа опеÑаÑоÑа |
planid | bigint | ÐнÑÑÑенний Ñ ÐµÑ-код, вÑÑиÑленнÑй Ð´Ð»Ñ Ð´ÐµÑева плана опеÑаÑоÑа |
duration | float8 | ÐÑемÑ, заÑÑаÑенное на планиÑование и вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
plan_time | float8 | ÐÑемÑ, заÑÑаÑенное на планиÑование опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
exec_time | float8 | ÐÑемÑ, заÑÑаÑенное на вÑполнение опеÑаÑоÑа, в миллиÑекÑÐ½Ð´Ð°Ñ |
user_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в полÑзоваÑелÑÑком Ñежиме, заÑÑаÑенное на планиÑование и вÑполнение опеÑаÑоÑа |
system_time | float8 | ÐÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в Ñежиме ÑдÑа, заÑÑаÑенное на планиÑование и вÑполнение опеÑаÑоÑа |
rows | int8 | ÐбÑее ÑиÑло ÑÑÑок, полÑÑеннÑÑ Ð¸Ð»Ð¸ заÑÑонÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑом |
shared_blks_hit | int8 | ÐбÑее ÑиÑло попаданий ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÐºÐµÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа |
shared_blks_read | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
shared_blks_fetched | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом из бÑÑеÑов |
shared_blks_dirtied | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², «загÑÑзнÑннÑÑ Â» даннÑм опеÑаÑоÑом |
shared_blks_written | int8 | ÐбÑее ÑиÑло ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
local_blks_hit | int8 | ÐбÑее ÑиÑло попаданий локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² в ÐºÐµÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа |
local_blks_read | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
local_blks_fetched | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом из бÑÑеÑов |
local_blks_dirtied | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², «загÑÑзнÑннÑÑ Â» даннÑм опеÑаÑоÑом |
local_blks_written | int8 | ÐбÑее ÑиÑло локалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
temp_blks_read | int8 | ÐбÑее ÑиÑло вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², пÑоÑиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
temp_blks_written | int8 | ÐбÑее ÑиÑло вÑеменнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð², запиÑаннÑÑ Ð´Ð°Ð½Ð½Ñм опеÑаÑоÑом |
wal_bytes | numeric | ÐбÑий обÑÑм WAL (в байÑÐ°Ñ ), ÑгенеÑиÑованнÑй пÑи вÑполнении опеÑаÑоÑа |
total_wait_time | float8 | ÐбÑее вÑемÑ, заÑÑаÑенное на ожидание пÑи вÑполнении ÑÑого опеÑаÑоÑа |
total_inval_msgs | bigint | ÐбÑее ÑиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа, вÑданнÑÑ Ð¿Ñи вÑполнении опеÑаÑоÑа (еÑли ÑÑо поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑеÑвеÑ) |
explain_analyze | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом ANALYZE. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_analyze_default. |
explain_verbose | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом VERBOSE. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_verbose_default. |
explain_costs | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом COSTS. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_costs_default. |
explain_settings | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом SETTINGS. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_settings_default. |
explain_buffers | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом BUFFERS. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_buffers_default. |
explain_wal | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом WAL. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_wal_default. |
explain_timing | boolean | ÐÑи знаÑении true вÑвод EXPLAIN бÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом TIMING. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.explain_timing_default. |
explain_format | text | ÐнаÑение паÑамеÑÑа FORMAT пÑоÑоколиÑÑемой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ EXPLAIN, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ TEXT, XML, JSON или YAML. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии pgpro_stats.plan_format. |
time_info | boolean | ÐÑи знаÑении true добавлÑÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð² вÑвод ÑÑаÑÑиÑовки ÑеанÑа в ÑоÑмаÑе, ÑÑÑановленном аÑÑибÑÑом explain_format: pid, duration в миллиÑекÑндаÑ
, start time â вÑÐµÐ¼Ñ Ð½Ð°Ñала вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа и stop time â вÑÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа. ÐÑвод ÑÑаÑÑиÑовки Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑией показан в ÐÑимеÑе G.2. |
ÐÑÑибÑÑÑ ÑилÑÑÑов можно ÑазделиÑÑ Ð½Ð° ÑледÑÑÑие гÑÑппÑ:
УпÑавлÑÑÑие аÑÑибÑÑÑ, оÑ
filter_idдоtracefileв ТаблиÑа G.83.ÐденÑиÑиÑиÑÑÑÑие аÑÑибÑÑÑ, оÑ
pidдоplanidв ТаблиÑа G.83.ÐоÑоговÑе аÑÑибÑÑÑ, оÑ
durationдоtotal_inval_msgsв ТаблиÑа G.83.ÐÑÑибÑÑÑ, коÑоÑÑе ÑпÑавлÑÑÑ Ð²Ñводом в Ñайл ÑÑаÑÑиÑовки или Ñайл ÑиÑÑемного жÑÑнала и не влиÑÑÑ Ð½Ð° ÑилÑÑÑаÑиÑ. РоÑновном они опÑеделÑÑÑ Ð¿Ð°ÑамеÑÑÑ
EXPLAIN. ÐÑо аÑÑибÑÑÑ, наÑинаÑÑиеÑÑ Ñexplain_analyzeи до конÑа ТаблиÑÑ G.83.
ÐÑполнение запÑоÑа бÑÐ´ÐµÑ ÑÑаÑÑиÑоваÑÑÑÑ, еÑли вÑполнÑÑÑÑÑ Ð¾Ð±Ð° ÑледÑÑÑÐ¸Ñ ÑÑловиÑ:
ÐÐ»Ñ Ð²ÑÐµÑ ÑказаннÑÑ Ð¸Ð´ÐµÐ½ÑиÑиÑиÑÑÑÑÐ¸Ñ Ð°ÑÑибÑÑов иденÑиÑикаÑии ÑилÑÑÑа знаÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ñ Ð°ÑакÑеÑиÑÑик запÑоÑа ÑовпадаÑÑ Ñо знаÑениÑми ÑÑÐ¸Ñ Ð°ÑÑибÑÑов.
ÐÐ»Ñ Ð²ÑÐµÑ ÑказаннÑÑ Ð¿Ð¾ÑоговÑÑ Ð°ÑÑибÑÑов ÑилÑÑÑа знаÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ñ Ð°ÑакÑеÑиÑÑик запÑоÑа болÑÑе или ÑÐ°Ð²Ð½Ñ Ð¿Ñеделам, ÑказаннÑм в ÑÑÐ¸Ñ Ð°ÑÑибÑÑÐ°Ñ .
Ðожно не пÑиÑваиваÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð°ÑÑибÑÑам. ÐÐ»Ñ Ð²ÑеÑ
аÑÑибÑÑов, кÑоме active, можно Ñакже Ñвно пÑиÑвоиÑÑ Ð·Ð½Ð°Ñение NULL. ÐÑли знаÑение ÑпÑавлÑÑÑего аÑÑибÑÑа не опÑеделено или Ñвно задан NULL, ÑÑÐ¾Ð¼Ñ Ð°ÑÑибÑÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑиÑвоено знаÑение по ÑмолÑаниÑ, показанное в ТаблиÑа G.83. ÐÐ»Ñ Ð¸Ð´ÐµÐ½ÑиÑиÑиÑÑÑÑиÑ
и поÑоговÑÑ
аÑÑибÑÑов неопÑеделÑннÑе знаÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ NULL ознаÑаÑÑ, ÑÑо запÑоÑÑ Ð½Ðµ бÑдÑÑ ÑилÑÑÑоваÑÑÑÑ Ð¿Ð¾ ÑооÑвеÑÑÑвÑÑÑей Ñ
аÑакÑеÑиÑÑике. ÐÑли Ð´Ð»Ñ Ð²ÑеÑ
иденÑиÑиÑиÑÑÑÑиÑ
и поÑоговÑÑ
аÑÑибÑÑов не опÑеделено ни одного знаÑениÑ, вÑе запÑоÑÑ ÑÑиÑаÑÑÑÑ ÑооÑвеÑÑÑвÑÑÑими ÑÑÐ¾Ð¼Ñ ÑилÑÑÑÑ Ð¸ бÑдÑÑ ÑегиÑÑÑиÑоваÑÑÑÑ. ÐÑли аÑÑибÑÑÑ, задаÑÑие паÑамеÑÑÑ EXPLAIN, не опÑеделенÑ, бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ, опÑеделÑннÑе паÑамеÑÑами конÑигÑÑаÑии (за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑаздел G.2.8.2).
ÐÑедÑпÑеждение
ХоÑÑ Ð¿Ñи задании ÑилÑÑÑа можно ÑÑÑанавливаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð»Ñбой комбинаÑии аÑÑибÑÑов ÑилÑÑÑа, имейÑе в видÑ, ÑÑо ÑлиÑком обÑий ÑилÑÑÑ Ð¿ÑиведÑÑ Ðº ÑÑезмеÑÐ½Ð¾Ð¼Ñ ÑвелиÑÐµÐ½Ð¸Ñ ÑазмеÑа Ñайла ÑÑаÑÑиÑовки и замеÑно повлиÑÐµÑ Ð½Ð° пÑоизводиÑелÑноÑÑÑ, поÑколÑÐºÑ Ð¾ÑновнÑе издеÑжки ÑвÑÐ·Ð°Ð½Ñ Ñ Ð·Ð°Ð¿Ð¸ÑÑÑ Ð² Ñайл ÑÑаÑÑиÑовки, а не Ñ Ð¿ÑовеÑкой ÑÑловий ÑилÑÑÑа.
G.2.8.1. ФÑнкÑии ÑÑаÑÑиÑовки ÑеанÑов #
СпеÑиалÑнÑе ÑÑнкÑии позволÑÑÑ ÑоздаваÑÑ, изменÑÑÑ Ð¸ ÑдалÑÑÑ ÑилÑÑÑÑ Ð·Ð°Ð¿ÑоÑов:
-
pgpro_stats_trace_insert(VARIADIC "any") returns integer ÐобавлÑÐµÑ ÑилÑÑÑ Ð² ÑпиÑок ÑилÑÑÑов ÑÑаÑÑиÑовки ÑеанÑа. ФилÑÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð¿ÐµÑедан как поÑледоваÑелÑноÑÑÑ ÑеÑедÑÑÑÐ¸Ñ ÑÑ Ð¿Ð°Ñ ÐºÐ»ÑÑ-знаÑение, где клÑÑ â ÑÑо Ð¸Ð¼Ñ Ð°ÑÑибÑÑа ÑилÑÑÑа из ТаблиÑа G.83, за иÑклÑÑением
filter_id. ÐапÑимеÑ:pgpro_stats_trace_insert('pid', 42, 'database_name', 'main', 'explain_analyze', true)ÐаÑÑ ÐºÐ»ÑÑ-знаÑение позиÑионно незавиÑимÑ: они могÑÑ Ð±ÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² лÑбом поÑÑдке, незавиÑимо Ð¾Ñ Ð¿Ð¾ÑÑдка аÑÑибÑÑов в ТаблиÑа G.83. ÐекоÑоÑÑе аÑÑибÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¾ÑÑÑÑÑÑвоваÑÑ Ð² поÑледоваÑелÑноÑÑи. Таким аÑÑибÑÑам бÑдÑÑ Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. ÐозвÑаÑÐ°ÐµÑ ÑникалÑнÑй
filter_id, коÑоÑÑй ÑÑнкÑÐ¸Ñ Ð½Ð°Ð·Ð½Ð°ÑÐ°ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ð¾Ð¼Ñ ÑилÑÑÑÑ.-
pgpro_stats_trace_update(filter_id integer, VARIADIC "any") returns boolean ÐзменÑÐµÑ ÑилÑÑÑ ÑÑаÑÑиÑовки ÑеанÑа, опÑеделÑннÑй
filter_id. ÐÑÑибÑÑÑ ÑилÑÑÑа Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÐµÑедаваÑÑÑÑ ÐºÐ°Ðº поÑледоваÑелÑноÑÑÑ ÑеÑедÑÑÑÐ¸Ñ ÑÑ Ð¿Ð°Ñ ÐºÐ»ÑÑ-знаÑение, где клÑÑ â ÑÑо Ð¸Ð¼Ñ Ð°ÑÑибÑÑа ÑилÑÑÑа из ТаблиÑа G.83, за иÑклÑÑениемfilter_id. ÐаÑÑ ÐºÐ»ÑÑ-знаÑение позиÑионно незавиÑимÑ: они могÑÑ Ð±ÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² лÑбом поÑÑдке, незавиÑимо Ð¾Ñ Ð¿Ð¾ÑÑдка аÑÑибÑÑов в ТаблиÑа G.83. ÐÑÑибÑÑÑ ÑилÑÑÑа, знаÑÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑÑÑ Ð½Ðµ ÑÐºÐ°Ð·Ð°Ð½Ñ Ñвно, не бÑдÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ. ÐнаÑение NULL Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑиÑиÑÑÑÑÐ¸Ñ Ð¸ поÑоговÑÑ Ð°ÑÑибÑÑов ÑбÑаÑÑÐ²Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑÑÐ¸Ñ Ð°ÑÑибÑÑов, ÑÑо ознаÑаеÑ, ÑÑо запÑÐ¾Ñ Ð±ÑÐ´ÐµÑ ÑооÑвеÑÑÑвоваÑÑ ÑÑловиÑм изменÑнного ÑилÑÑÑа незавиÑимо Ð¾Ñ ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ñ Ð°ÑакÑеÑиÑÑик. ÐозвÑаÑаеÑtrueв ÑлÑÑае ÑÑÐ¿ÐµÑ Ð° иfalseв пÑоÑивном ÑлÑÑае.-
pgpro_stats_trace_delete(filter_id integer) returns boolean УдалÑÐµÑ ÑилÑÑÑ ÑÑаÑÑиÑовки ÑеанÑа, заданнÑй паÑамеÑÑом
filter_id. ÐÑи ÑÑпеÑном Ñдалении возвÑаÑаеÑtrue, в пÑоÑивном ÑлÑÑае âfalse.-
pgpro_stats_trace_reset() returns integer УдалÑÐµÑ Ð²Ñе ÑилÑÑÑÑ ÑÑаÑÑиÑовки ÑеанÑов. ÐозвÑаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑдалÑннÑÑ ÑилÑÑÑов. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð²ÑполнÑÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели. ÐÑÑгим полÑзоваÑелÑм можно даÑÑ Ð´Ð¾ÑÑÑп к ней, иÑполÑзÑÑ
GRANT.-
pgpro_stats_trace_show() returns setof record ÐÑобÑÐ°Ð¶Ð°ÐµÑ ÑодеÑжимое ÑаблиÑÑ ÑилÑÑÑов, ÑÑолбÑÑ ÐºÐ¾ÑоÑой Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.83.
G.2.8.2. ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии ÑÑаÑÑиÑовки ÑеанÑов #
СледÑÑÑие паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии пÑоÑоколиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑаÑÑиÑовки ÑеанÑов. ÐбÑаÑиÑе внимание, ÑÑо паÑамеÑÑÑ pgpro_stats.explain_*_default опÑеделÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ пÑоÑоколиÑованиÑ, когда ÑооÑвеÑÑÑвÑÑÑие аÑÑибÑÑÑ ÑилÑÑÑа explain_* (из ТаблиÑа G.83) не ÑÐºÐ°Ð·Ð°Ð½Ñ Ð¸Ð»Ð¸ Ð´Ð»Ñ Ð½Ð¸Ñ
Ñвно Ð·Ð°Ð´Ð°Ð½Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ NULL.
pgpro_stats.explain_analyze_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомANALYZE, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:false. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.explain_verbose_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомVERBOSE, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:false. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.explain_costs_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомCOSTS, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:true. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.explain_settings_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомSETTINGS, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:false. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.explain_buffers_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомBUFFERS, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:false. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.explain_wal_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомWAL, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:false. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.explain_timing_default(boolean) #ÐÑи знаÑении
trueвÑводEXPLAINбÑÐ´ÐµÑ Ð¿ÑоÑоколиÑоваÑÑÑÑ Ñ Ð¿Ð°ÑамеÑÑомTIMING, в пÑоÑивном ÑлÑÑае (false) â без него. Ðо ÑмолÑаниÑ:true. ÐзмениÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð³ÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.pgpro_stats.trace_log_level(enum) #ÐпÑеделÑÐµÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð´ÐµÑализаÑии, Ñ ÐºÐ¾ÑоÑÑм вÑвод
EXPLAINбÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ Ð² ÑиÑÑемнÑй Ñайл жÑÑнала (еÑли Ñайл ÑÑаÑÑиÑовки не Ñказан). ÐопÑÑÑимÑе знаÑениÑ:DEBUG5,DEBUG4,DEBUG3,DEBUG2,DEBUG1,INFO,NOTICE,WARNINGиLOG. ÐнаÑение по ÑмолÑаниÑ:LOG.pgpro_stats.trace_query_text_size(int) #ÐпÑеделÑÐµÑ Ð¼Ð°ÐºÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÑекÑÑа запÑоÑа в вÑводе ÑÑаÑÑиÑовки ÑеанÑов, в килобайÑÐ°Ñ . ÐÑли ÑÐ°Ð·Ð¼ÐµÑ ÑекÑÑа запÑоÑа в килобайÑÐ°Ñ Ð±Ð¾Ð»ÑÑе, запÑÐ¾Ñ Ð¾Ð±ÑезаеÑÑÑ Ð´Ð¾ макÑималÑного ÑазмеÑа. ÐÑли паÑамеÑÑ Ð½Ðµ задан, иÑполÑзÑеÑÑÑ Ð·Ð½Ð°Ñение по ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ð¾Ð»Ñ, коÑоÑое ознаÑаеÑ, ÑÑо в вÑвод вклÑÑаÑÑÑÑ Ð¿Ð¾Ð»Ð½Ñе ÑекÑÑÑ Ð·Ð°Ð¿ÑоÑов.
G.2.8.3. ÐÑимеÑÑ, оÑноÑÑÑиеÑÑ Ðº ÑÑаÑÑиÑовке ÑеанÑов #
ÐÑÐ¸Ð¼ÐµÑ G.1. ÐÑполÑзование ÑÑнкÑий ÑÑаÑÑиÑовки ÑеанÑов
ÐобавÑÑе ÑилÑÑÑ first:
SELECT pgpro_stats_trace_insert('alias', 'first', 'pid', pg_backend_pid(), 'explain_analyze', true); ÐобавÑÑе ÑилÑÑÑ second и ÑкажиÑе пÑоÑоколиÑование в Ñайл ÑÑаÑÑиÑовки second_tf.trace:
SELECT pgpro_stats_trace_insert('alias', 'second', 'database_name', current_database(), 'explain_costs', false, 'tracefile', 'second_tf');ТаблиÑÑ Ñ ÑилÑÑÑами можно поÑмоÑÑеÑÑ ÑледÑÑÑим обÑазом:
\x auto SELECT * from pgpro_stats_trace_show();
-[ RECORD 1 ]-------+---------- filter_id | 1 active | t alias | first tracefile | pid | 243183 database_name | client_addr | application_name | username | queryid | planid | duration | plan_time | exec_time | user_time | system_time | rows | shared_blks_hit | shared_blks_read | shared_blks_fetched | shared_blks_dirtied | shared_blks_written | local_blks_hit | local_blks_read | local_blks_fetched | local_blks_dirtied | local_blks_written | temp_blks_read | temp_blks_written | wal_bytes | total_wait_time | total_inval_msgs | explain_analyze | t explain_verbose | f explain_costs | t explain_settings | f explain_buffers | f explain_wal | f explain_timing | t explain_format | text time_info | f -[ RECORD 2 ]-------+---------- filter_id | 2 active | t alias | second tracefile | second_tf pid | database_name | postgres client_addr | application_name | username | queryid | planid | duration | plan_time | exec_time | user_time | system_time | rows | shared_blks_hit | shared_blks_read | shared_blks_fetched | shared_blks_dirtied | shared_blks_written | local_blks_hit | local_blks_read | local_blks_fetched | local_blks_dirtied | local_blks_written | temp_blks_read | temp_blks_written | wal_bytes | total_wait_time | total_inval_msgs | explain_analyze | f explain_verbose | f explain_costs | f explain_settings | f explain_buffers | f explain_wal | f explain_timing | f explain_format | text time_info | f
СледÑÑÑий запÑÐ¾Ñ ÑооÑвеÑÑÑвÑÐµÑ ÑÑловиÑм Ð¾Ð±Ð¾Ð¸Ñ ÑилÑÑÑов, поÑÑÐ¾Ð¼Ñ Ð¾Ð½ должен бÑÑÑ Ð·Ð°Ð¿Ð¸Ñан в Ñайл ÑиÑÑемного жÑÑнала и в ÑказаннÑй Ñайл ÑÑаÑÑиÑовки:
SELECT 1 as result;
ÐÑвод в Ñайл ÑиÑÑемного жÑÑнала вÑглÑÐ´Ð¸Ñ Ñак:
-- :: MSK [] LOG: Filter 1 triggered explain of the plan: Query Text: SELECT 1 as result; Result (cost=0.00..0.01 rows=1 width=4) (actual time=0.003..0.003 rows=1 loops=1)
Ðиже пÑиведÑн вÑвод Ñайла ÑÑаÑÑиÑовки second_tf.trace:
Query Text: SELECT 1 as result; Result
УдалиÑе пеÑвÑй ÑилÑÑÑ:
SELECT pgpro_stats_trace_delete(1);
Также измениÑе знаÑение pid на 2 Ð´Ð»Ñ Ð²ÑоÑого ÑилÑÑÑа
SELECT pgpro_stats_trace_update(2, 'pid', 2);
ÐÑи вÑполнении запÑоÑа
SELECT 2 as result;
он не запиÑÑваеÑÑÑ Ð² second_tf.trace.
УдалиÑе вÑе ÑилÑÑÑÑ Ð¸Ð· ÑаблиÑÑ:
SELECT pgpro_stats_trace_reset();
ÐÑÐ¸Ð¼ÐµÑ G.2. ÐÑвод ÑÑаÑÑиÑовки ÑеанÑа Ñ time_info = true
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ Ð²Ñвод ÑÑаÑÑиÑовки ÑеанÑа в ÑоÑмаÑе JSON пÑи time_info = true:
{
"Pid": 123456,
"Duration ms": 0.094691,
"Start time": "2025-01-12 15:39:27.580447+03",
"Stop time": "2025-01-12 15:39:27.587802+03",
"Query Text": "SELECT 2 AS Result;",
"Plan": {
"Node Type": "Result",
"Parallel Aware": false,
"Async Capable": false,
"Startup Cost": 0.00,
"Total Cost": 0.01,
"Plan Rows": 1,
"Plan Width": 4
}
}
G.2.9. ÐеÑÑики аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа #
Ðомимо пÑоÑего, pgpro_stats Ð¼Ð¾Ð¶ÐµÑ ÑобиÑаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð°Ð½Ð½ÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа. ÐÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð² ÑÑом Ñазделе обÑÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð»ÑÑÑе понимаÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñели, ÑвÑзаннÑе Ñ ÑÑой ÑÑаÑиÑÑикой.
У каждого обÑлÑживаÑÑего пÑоÑеÑÑа еÑÑÑ Ñвой локалÑнÑй кеÑ, ÑÑо позволÑÐµÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð¸Ð·Ð¸ÑоваÑÑ Ð¾Ð±ÑаÑÐµÐ½Ð¸Ñ Ðº меÑаинÑоÑмаÑии ÑаблиÑ, в ÑаÑÑноÑÑи к ÑиÑÑемнÑм каÑалогам. ÐÑли какой-либо обÑлÑживаÑÑий пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ Ð¼ÐµÑаинÑоÑмаÑÐ¸Ñ Ð½ÐµÐºÐ¾ÑоÑого обÑекÑа, она должна обновиÑÑÑÑ Ð² кеÑÐ°Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¾Ð±ÑлÑживаÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов. ÐÐ»Ñ ÑÑого пеÑвÑй обÑлÑживаÑÑий пÑоÑеÑÑ Ð¾ÑпÑавлÑÐµÑ ÑообÑение аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑпеÑиалÑнÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð´Ð»Ñ ÑÐ°ÐºÐ¸Ñ ÑообÑений.
ÐÑе обÑлÑживаÑÑие пÑоÑеÑÑÑ Ð¿Ð¾Ð»ÑÑаÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð°Ð½Ð½ÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· оÑеÑеди. ÐÑли обÑекÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑого полÑÑено ÑообÑение аннÑлиÑованиÑ, Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² кеÑе, его меÑаданнÑе в кеÑе обновлÑÑÑÑÑ, инаÑе ÑÑо ÑообÑение пÑоÑÑо игноÑиÑÑеÑÑÑ. Ð pgpro_stats знаÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑÑинÑÑва ÑÑÑÑÑиков ÑообÑений аннÑлиÑованиÑ, еÑли Ñвно не Ñказано иное, ÑвелиÑиваÑÑÑÑ, когда обÑлÑживаÑÑие пÑоÑеÑÑÑ ÑолÑко генеÑиÑÑÑÑ ÑообÑениÑ, коÑоÑÑе попадÑÑ Ð² оÑеÑÐµÐ´Ñ Ð¿Ð¾Ñле ÑикÑаÑии ÑооÑвеÑÑÑвÑÑÑей ÑÑанзакÑии. ÐбÑаÑиÑе внимание, ÑÑо пÑи оÑкаÑе ÑÑанзакÑии ÑÑÑÑÑики не ÑменÑÑаÑÑÑÑ, Ñ Ð¾ÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð² ÑÑом ÑлÑÑае не Ð´Ð¾Ñ Ð¾Ð´ÑÑ Ð´Ð¾ оÑеÑеди и аннÑлиÑование не пÑоизводиÑÑÑ.
Ðогда обÑлÑживаÑÑий пÑоÑеÑÑ, добавлÑÑÑий ÑообÑÐµÐ½Ð¸Ñ Ð² оÑеÑедÑ, обнаÑÑживаеÑ, ÑÑо ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑеÑеди доÑÑиг некоÑоÑого пÑедела, он запÑÑÐºÐ°ÐµÑ Ð¾ÑиÑÑкÑ, ÑдалÑÑ ÑообÑениÑ, Ñже обÑабоÑаннÑе вÑеми обÑлÑживаÑÑими пÑоÑеÑÑами. ÐÑли какие-Ñо обÑлÑживаÑÑие пÑоÑеÑÑÑ Ð½Ðµ ÑÑпеваÑÑ Ð¾Ð±ÑабаÑÑваÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð¸, Ñаким обÑазом, задеÑживаÑÑ Ð¾ÑиÑÑкÑ, им пеÑедаÑÑÑÑ Ñигнал, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ ÑбÑоÑили Ñвои кеÑи.
G.2.9.1. ÐÑедÑÑавление pgpro_stats_inval_status #
ÐÑедÑÑавление pgpro_stats_inval_status ÑодеÑÐ¶Ð¸Ñ Ð¾Ð´Ð½Ñ ÑÑÑокÑ, показÑваÑÑÑÑ ÑекÑÑее ÑоÑÑоÑние глобалÑной оÑеÑеди аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа. СÑолбÑÑ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.84.
ТаблиÑа G.84. СÑолбÑÑ pgpro_stats_inval_status
| Name | Тип | ÐпиÑание |
|---|---|---|
num_inval_messages | int8 | ТекÑÑее ÑиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² оÑеÑеди |
num_inval_queue_cleanups | int8 | ÐолиÑеÑÑво оÑиÑÑок оÑеÑеди аннÑлиÑованиÑ, вÑполненнÑÑ Ð²Ð¾ избежание ÐµÑ Ð¿ÐµÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ |
num_inval_queue_resets | int4 | ЧиÑло опеÑаÑий ÑбÑоÑа кеÑа Ð´Ð»Ñ Ð¾Ð±ÑлÑживаÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов, не ÑÑпеваÑÑÐ¸Ñ Ð¾Ð±ÑабаÑÑваÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно бÑÑÑÑо |
Ð ÑабоÑаÑÑей ÑиÑÑеме num_inval_messages обÑÑно Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение около 4000, Ñо еÑÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð¿Ð¾ÑÑи полноÑÑÑÑ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð°. УвелиÑение num_inval_queue_cleanups говоÑÐ¸Ñ Ð¾ Ñом, ÑÑо в оÑеÑÐµÐ´Ñ Ð¿Ð¾ÑÑÑÐ¿Ð°ÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа. ÐбÑÑно ÑÑÑÑÑик num_inval_queue_resets не ÑвелиÑиваеÑÑÑ, а его ÑвелиÑение ÑвидеÑелÑÑÑвÑÐµÑ Ð¾ ÑлиÑком бÑÑÑÑом поÑÑÑплении ÑакиÑ
ÑообÑений или о задеÑжкаÑ
в иÑ
обÑабоÑке Ñо ÑÑоÑÐ¾Ð½Ñ Ð¾Ð±ÑлÑживаÑÑиÑ
пÑоÑеÑÑов. ÐÑÑлеживание знаÑений num_inval_queue_cleanups и num_inval_queue_resets в некоÑоÑÑÑ
ÑлÑÑаÑÑ
Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸ÑÑ Ð¾Ð±Ð½Ð°ÑÑжиÑÑ Ð¿ÑоблемнÑе обÑлÑживаÑÑие пÑоÑеÑÑÑ, как опиÑано ниже.
ÐÑли на пÑоÑÑжении некоÑоÑого вÑемени ÑÑÑÑÑик num_inval_queue_cleanups замеÑно ÑвелиÑиваеÑÑÑ, а num_inval_queue_resets â неÑ, ÑÑо говоÑÐ¸Ñ Ð¾ Ñом, ÑÑо обÑлÑживаÑÑие пÑоÑеÑÑÑ Ð¾Ð±ÑабаÑÑваÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð°Ð½Ð½ÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÐµÐµ, Ñем они генеÑиÑÑÑÑÑÑ, но вÑÑ Ð¶Ðµ доÑÑаÑоÑно бÑÑÑÑо Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¾ÑеÑÐµÐ´Ñ Ð½Ðµ пеÑеполнÑлаÑÑ.
ÐÑли на пÑоÑÑжении некоÑоÑого вÑемени ÑÑÑÑÑик num_inval_queue_cleanups знаÑиÑелÑно не ÑвелиÑиваеÑÑÑ, а ÑÑÑÑÑик num_inval_queue_resets â ÑвелиÑиваеÑÑÑ, ÑÑо опÑеделÑнно ÑказÑÐ²Ð°ÐµÑ Ð½Ð° задеÑÐ¶ÐºÑ Ð¾Ð±ÑабоÑки ÑообÑений обÑлÑживаÑÑими пÑоÑеÑÑами. Ðакие именно обÑлÑживаÑÑие пÑоÑеÑÑÑ Ð²Ð¸Ð½Ð¾Ð²Ð°ÑÑ Ð² задеÑжке, позволÑÐµÑ Ð¾Ð¿ÑеделиÑÑ ÑÑÐ¾Ð»Ð±ÐµÑ cache_resets пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pgpro_stats_totals.
ÐÑли же на пÑоÑÑжении некоÑоÑого вÑемени оба ÑÑÑÑÑика знаÑиÑелÑно ÑвелиÑиваÑÑÑÑ, ÑÑо ÑказÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо обÑлÑживаÑÑие пÑоÑеÑÑÑ Ð¾Ð±ÑабаÑÑваÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð°Ð½Ð½ÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°ÑÑолÑко медленно, ÑÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿ÐµÑеполнение оÑеÑеди. Ðакие именно пÑоÑеÑÑÑ Ð·Ð°Ð´ÐµÑживаÑÑ Ð¾Ð±ÑабоÑÐºÑ ÑообÑений, позволÑÐµÑ Ð¾Ð¿ÑеделиÑÑ ÑÑÐ¾Ð»Ð±ÐµÑ cache_reset пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pgpro_stats_total. ЧÑо ÑвлÑеÑÑÑ Ð¿ÑиÑиной ÑвелиÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ num_inval_queue_resets, болÑÑÐ°Ñ ÑкоÑоÑÑÑ Ð³ÐµÐ½ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑообÑений или ÑлиÑком Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð°Ñ Ð¸Ñ
обÑабоÑка, непоÑÑедÑÑвенно опÑеделиÑÑ Ð½ÐµÐ»ÑзÑ. Ðднако можно пÑоанализиÑоваÑÑ ÑÑÑÑÑик total из пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pgpro_stats_inval_msgs. ÐÑли в данном инÑеÑвале вÑемени ÑÑÑÑÑик изменилÑÑ Ð¿ÑимеÑно на ÑÑ Ð¶Ðµ велиÑинÑ, ÑÑо и в пÑедÑдÑÑем инÑеÑвале Ñой же длиÑелÑноÑÑи, ÑвелиÑение ÑÑÑÑÑиков опÑеделÑнно вÑзвано задеÑжками обÑлÑживаÑÑиÑ
пÑоÑеÑÑов.
ÐÑедÑÑавление pgpro_stats_inval_status можно опÑеделиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑии:
-
pgpro_stats_inval_status() returns record ÐпÑеделÑÐµÑ Ð¿ÑедÑÑавление
pgpro_stats_inval_status, опиÑанное подÑобно в ТаблиÑе G.84.
G.2.9.2. Тип pgpro_stats_inval_msgs #
ÐÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pgpro_stats_statements и pgpro_stats_totals Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑооÑвеÑÑÑвÑÑÑего обÑекÑа показÑваÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ñипа pgpro_stats_inval_msgs Ñо ÑÑÑÑÑиками ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа. ÐÐ¾Ð»Ñ ÑÑой запиÑи Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ТаблиÑе G.85.
ТаблиÑа G.85. ÐÐ¾Ð»Ñ pgpro_stats_inval_msgs
| Name | Тип | ÐпиÑание |
|---|---|---|
total | bigint | ÐбÑее ÑиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ |
catcache | bigint | ЧиÑло ÑообÑений избиÑаÑелÑного аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа каÑалога |
catalog | bigint | ЧиÑло ÑообÑений полного аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа каÑалога |
relcache | bigint | ЧиÑло ÑообÑений избиÑаÑелÑного аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа оÑноÑений |
relcache_all | bigint | ЧиÑло ÑообÑений полного аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа оÑноÑений |
smgr | bigint | ЧиÑло ÑообÑений, вÑзÑваÑÑÐ¸Ñ Ð°Ð½Ð½ÑлиÑование оÑкÑÑÑÑÑ Ñайлов оÑноÑений. УвелиÑиваеÑÑÑ, когда ÑообÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ð°Ð´Ð°ÑÑ Ð² оÑеÑедÑ. |
relmap | bigint | ЧиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐµÑа каÑÑÑ Ð¾ÑноÑений. УвелиÑиваеÑÑÑ, когда ÑообÑÐµÐ½Ð¸Ñ Ð¾ÑпÑавлÑÑÑÑÑ Ð² оÑеÑедÑ. |
snapshot | bigint | ЧиÑло ÑообÑений аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñнимков каÑалога |
G.2.10. ÐвÑоÑÑ #
Postgres Professional, ÐоÑква, РоÑÑиÑ