27.4. ÐÑÑлеживание вÑполнениÑ
Postgres Pro Ð¸Ð¼ÐµÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¾ÑÑлеживаÑÑ Ð²Ñполнение опÑеделÑннÑÑ
команд. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ñакое оÑÑлеживание поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑолÑко команда VACUUM, но в бÑдÑÑем ÑÑеÑа его пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑÑиÑена.
27.4.1. ÐÑÑлеживание вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ VACUUM
Ðо вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ VACUUM пÑедÑÑавление pg_stat_progress_vacuum бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¿Ð¾ одной ÑÑÑоке Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑлÑживаÑÑего пÑоÑеÑÑа (вклÑÑÐ°Ñ ÑабоÑие пÑоÑеÑÑÑ Ð°Ð²ÑооÑиÑÑки), пÑоизводÑÑего оÑиÑÑкÑ. ТаблиÑÑ Ð½Ð¸Ð¶Ðµ показÑваÑÑ, ÐºÐ°ÐºÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑлеживаÑÑÑÑ, и ÑаÑÑказÑваÑÑ, как ÐµÑ Ð¸Ð½ÑеÑпÑеÑиÑоваÑÑ. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¾ÑÑлеживание вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ поддеÑживаеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ VACUUM FULL, Ñак ÑÑо пÑоÑеÑÑÑ, вÑполнÑÑÑие VACUUM FULL, не бÑдÑÑ Ð²Ð¸Ð´Ð½Ñ Ð² ÑÑом пÑедÑÑавлении.
ТаблиÑа 27.20. ÐÑедÑÑавление pg_stat_progress_vacuum
| СÑÐ¾Ð»Ð±ÐµÑ | Тип | ÐпиÑание |
|---|---|---|
pid | integer | ÐденÑиÑикаÑÐ¾Ñ (PID) обÑлÑживаÑÑего пÑоÑеÑÑа |
datid | oid | OID Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑой подклÑÑÑн ÑÑÐ¾Ñ Ð¾Ð±ÑлÑживаÑÑий пÑоÑеÑÑ. |
datname | name | ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑой подклÑÑÑн ÑÑÐ¾Ñ Ð¾Ð±ÑлÑживаÑÑий пÑоÑеÑÑ. |
relid | oid | OID оÑиÑаемой ÑаблиÑÑ. |
phase | text | ТекÑÑÐ°Ñ Ñаза оÑиÑÑки. См. ТаблиÑÑ 27.21. |
heap_blks_total | bigint | ÐбÑее ÑиÑло блоков кÑÑи в ÑаблиÑе. ÐÑо ÑиÑло оÑÑÐ°Ð¶Ð°ÐµÑ ÑоÑÑоÑние в наÑале ÑканиÑованиÑ; блоки, добавленнÑе позже, не бÑдÑÑ (и не должнÑ) обÑабаÑÑваÑÑÑÑ ÑекÑÑей командой VACUUM. |
heap_blks_scanned | bigint | ЧиÑло пÑоÑканиÑованнÑÑ
блоков кÑÑи. Так как Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ ÐºÐ°ÑÑа видимоÑÑи, некоÑоÑÑе блоки могÑÑ Ð¿ÑопÑÑкаÑÑÑÑ Ð±ÐµÐ· оÑмоÑÑа; пÑопÑÑеннÑе блоки вÑ
одÑÑ Ð² ÑÑо обÑее ÑиÑло, Ñак ÑÑо по завеÑÑении оÑиÑÑки ÑÑо ÑиÑло ÑÑÐ°Ð½ÐµÑ Ñавно heap_blks_total. ÐÑÐ¾Ñ ÑÑÑÑÑик ÑвелиÑиваеÑÑÑ ÑолÑко в Ñазе scanning heap. |
heap_blks_vacuumed | bigint | ЧиÑло оÑиÑеннÑÑ
блоков кÑÑи. ÐÑли в ÑаблиÑе Ð½ÐµÑ Ð¸Ð½Ð´ÐµÐºÑов, ÑÑÐ¾Ñ ÑÑÑÑÑик ÑвелиÑиваеÑÑÑ ÑолÑко в Ñазе vacuuming heap (оÑиÑÑка кÑÑи). Ðлоки, не ÑодеÑжаÑие «мÑÑÑвÑÑ
» коÑÑежей, пÑи ÑÑом пÑопÑÑкаÑÑÑÑ, Ñак ÑÑо ÑÑÐ¾Ñ ÑÑÑÑÑик иногда Ð¼Ð¾Ð¶ÐµÑ ÑвелиÑиваÑÑÑÑ Ñезкими ÑÑвками. |
index_vacuum_count | bigint | ÐолиÑеÑÑво завеÑÑÑннÑÑ Ñиклов оÑиÑÑки индекÑа. |
max_dead_tuples | bigint | ЧиÑло «мÑÑÑвÑÑ Â» коÑÑежей, коÑоÑое Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ ÑÐ¾Ñ ÑаниÑÑ, пÑежде Ñем поÑÑебÑеÑÑÑ Ð²ÑполниÑÑ Ñикл оÑиÑÑки индекÑа, в завиÑимоÑÑи Ð¾Ñ maintenance_work_mem. |
num_dead_tuples | bigint | ЧиÑло «мÑÑÑвÑÑ Â» коÑÑежей, ÑобÑаннÑÑ Ñо вÑемени поÑледнего Ñикла оÑиÑÑки индекÑа. |
ТаблиÑа 27.21. Ð¤Ð°Ð·Ñ VACUUM
| Фаза | ÐпиÑание |
|---|---|
initializing | ÐниÑиализаÑÐ¸Ñ â VACUUM гоÑовиÑÑÑ Ð½Ð°ÑаÑÑ ÑканиÑование кÑÑи. ÐÑа Ñаза должна бÑÑÑ Ð¾ÑÐµÐ½Ñ Ð±ÑÑÑÑой. |
scanning heap | СканиÑование кÑÑи â VACUUM в наÑÑоÑÑее вÑÐµÐ¼Ñ ÑканиÑÑÐµÑ ÐºÑÑÑ. ÐÑи ÑÑом бÑÐ´ÐµÑ Ð¾ÑиÑена и, еÑли ÑÑебÑеÑÑÑ, деÑÑагменÑиÑована ÐºÐ°Ð¶Ð´Ð°Ñ ÑÑÑаниÑа, а возможно, Ñакже бÑÐ´ÐµÑ Ð¿Ñоизведена замоÑозка. ÐÑÑлеживаÑÑ Ð¿ÑоÑеÑÑ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾, ÑÐ»ÐµÐ´Ñ Ð·Ð° ÑодеÑжимÑм ÑÑолбÑа heap_blks_scanned. |
vacuuming indexes | ÐÑиÑÑка индекÑов â VACUUM в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¾ÑиÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑÑ. ÐÑли Ñ ÑаблиÑÑ ÐµÑÑÑ ÐºÐ°ÐºÐ¸Ðµ-либо индекÑÑ, ÑÑа Ñаза бÑÐ´ÐµÑ Ð½Ð°Ð±Ð»ÑдаÑÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ñм ÐµÐ´Ð¸Ð½Ð¾Ð¶Ð´Ñ Ð² пÑоÑеÑÑе оÑиÑÑки, поÑле Ñого, как кÑÑа бÑÐ´ÐµÑ Ð¿ÑоÑканиÑована полноÑÑÑÑ. Ðна Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²ÑоÑÑÑÑÑÑ Ð½ÐµÑколÑко Ñаз в пÑоÑеÑÑе оÑиÑÑки, еÑли обÑÑма maintenance_work_mem (или, в ÑлÑÑае авÑооÑиÑÑки, autovacuum_work_mem, еÑли он задан) оказÑваеÑÑÑ Ð½ÐµÐ´Ð¾ÑÑаÑоÑно Ð´Ð»Ñ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð²ÑеÑ
найденнÑÑ
«мÑÑÑвÑÑ
» коÑÑежей. |
vacuuming heap | ÐÑиÑÑка кÑÑи â VACUUM в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¾ÑиÑÐ°ÐµÑ ÐºÑÑÑ. ÐÑиÑÑка кÑÑи оÑлиÑаеÑÑÑ Ð¾Ñ ÑканиÑованиÑ, Ñак как она пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ñле каждой опеÑаÑии оÑиÑÑки индекÑов. ÐÑли heap_blks_scanned менÑÑе Ñем heap_blks_total, ÑиÑÑема веÑнÑÑÑÑ Ðº ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÑÑи поÑле завеÑÑÐµÐ½Ð¸Ñ ÑÑой ÑазÑ; в пÑоÑивном ÑлÑÑае она наÑнÑÑ ÑбоÑÐºÑ Ð¸Ð½Ð´ÐµÐºÑов. |
cleaning up indexes | УбоÑка индекÑов â VACUUM в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ ÑбоÑÐºÑ Ð² индекÑаÑ
. ÐÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ñле завеÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÑÑи и оÑиÑÑки индекÑов и кÑÑи. |
truncating heap | УÑеÑение кÑÑи â VACUUM в наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑÐµÐºÐ°ÐµÑ ÐºÑÑÑ, ÑÑÐ¾Ð±Ñ Ð²Ð¾Ð·Ð²ÑаÑиÑÑ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑеме обÑÑм пÑÑÑÑÑ
ÑÑÑÐ°Ð½Ð¸Ñ Ð² конÑе оÑноÑениÑ. ÐÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ñле ÑбоÑки индекÑов. |
performing final cleanup | ÐÑполнение оконÑаÑелÑной оÑиÑÑки â VACUUM вÑполнÑÐµÑ Ð¾ÐºÐ¾Ð½ÑаÑелÑнÑÑ Ð¾ÑиÑÑкÑ. Ðа ÑÑой ÑÑадии VACUUM оÑиÑÐ°ÐµÑ ÐºÐ°ÑÑÑ Ñвободного пÑоÑÑÑанÑÑва, обновлÑÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð² pg_class и пеÑедаÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ ÑбоÑÑÐ¸ÐºÑ ÑÑаÑиÑÑики, ÐоÑле ÑÑой ÑÐ°Ð·Ñ VACUUM завеÑÑÐ¸Ñ ÑÐ²Ð¾Ñ ÑабоÑÑ. |