рд▓реЗрдЦ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ " 
PostgreSQL рдХреЗ рд▓рд┐рдП ASH рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ "ред
рд▓реЗрдЦ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдФрд░ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ - pg_locks рджреГрд╢реНрдп рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдЪреЗрддрд╛рд╡рдиреАред
рд╡рд┐рд╖рдп рдХреА рдирд╡реАрдирддрд╛ рдФрд░ рдЕрдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдХреЗ рдХрд╛рд░рдг, рд▓реЗрдЦ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдФрд░ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИред
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛
Pg_locks рдкреНрд░рд╕реНрддреБрдд рдЗрддрд┐рд╣рд╛рд╕
archive_lockingCREATE TABLE archive_locking ( timepoint timestamp without time zone , locktype text , relation oid , mode text , tid xid , vtid text , pid integer , blocking_pids integer[] , granted boolean , queryid bigint ); 
 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ 
рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд┐рдП рдЧрдП 
рд╕рдВрдЧреНрд░рд╣_рд╕реНрдХреНрд░рд┐рдкреНрдЯ_рд╕реНрдЯреИрдЯ_рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЯреЗрдмрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИ - 
pg_stat_statements + pg_stat_activity + loq_query = pg_ash? рдФрд░ рдпрд╣рд╛рдБ - 
PostgreSQL рдХреЗ рд▓рд┐рдП ASH рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕редрдХреНрд╡реЗрд░реА рдХреЙрд▓рдо рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
update_history_locking_by_queryid рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг: рдХреНрд╡реЗрд░реА рдХреЙрд▓рдо рдХрд╛ рдорд╛рди History_locking рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЬрдм рдЖрд░реНрдХрд╛рдЗрд╡_locking рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓реНрдп рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрддреНрдкрд╛рджрди
рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реАред
LOCKTYPES рджреНрд╡рд╛рд░рд╛ LOCKS рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
рдЬрд╛рдВрдЪ WITH t AS ( SELECT locktype , mode , count(*) as total FROM activity_hist.archive_locking WHERE timepoint between pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND NOT granted GROUP BY locktype , mode ) SELECT locktype , mode , total * interval '1 second' as duration FROM t ORDER BY 3 DESC 
 рдЙрджрд╛рд╣рд░рдг  |  LOCKTYPES рджреНрд╡рд╛рд░рд╛ LOCKS рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
 + -------------------- + ---------------------------- - + --------------------
 |  рд▓реЙрдХрдЯрд╛рдЗрдк |  рдореЛрдб |  рдЕрд╡рдзрд┐
 + -------------------- + ---------------------------- - + --------------------
 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  19:39:26
 |  рдЯрдкрд▓ |  AccessExclusiveLock |  00:03:35
 + -------------------- + ---------------------------- - + --------------------
 LOCKTYPES рджреНрд╡рд╛рд░рд╛ рд▓реЛрдХреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛
рдЬрд╛рдВрдЪ WITH t AS ( SELECT locktype , mode , count(*) as total FROM activity_hist.archive_locking WHERE timepoint between pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND granted GROUP BY locktype , mode ) SELECT locktype , mode , total * interval '1 second' as duration FROM t ORDER BY 3 DESC 
 рдЙрджрд╛рд╣рд░рдг  |  LOCKTYPES рджреНрд╡рд╛рд░рд╛ рд▓реЛрдХреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛
 + -------------------- + ---------------------------- - + --------------------
 |  рд▓реЙрдХрдЯрд╛рдЗрдк |  рдореЛрдб |  рдЕрд╡рдзрд┐
 + -------------------- + ---------------------------- - + --------------------
 |  рд░рд┐рд╢реНрддрд╛ |  RowExclusiveLock |  51:11:10
 |  virtualxid |  ExclusiveLock |  48:10:43
 |  рд▓реЗрди-рджреЗрди |  ExclusiveLock |  44:24:53
 |  рд░рд┐рд╢реНрддрд╛ |  AccessShareLock |  20:06:13
 |  рдЯрдкрд▓ |  AccessExclusiveLock |  17:58:47
 |  рдЯрдкрд▓ |  ExclusiveLock |  01:40:41
 |  рд░рд┐рд╢реНрддрд╛ |  ShareUpdateExclusiveLock |  00:26:41
 |  рд╡рд╕реНрддреБ |  RowExclusiveLock |  00:00:01
 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  00:00:01
 |  рд╡рд┐рд╕реНрддрд╛рд░ |  ExclusiveLock |  00:00:01
 + -------------------- + ---------------------------- - + --------------------
 рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╡реЗрд░реА рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА
QUERYID рджреНрд╡рд╛рд░рд╛ LOCKTYPES рджреНрд╡рд╛рд░рд╛ рд▓реЛрдХреЗрдХреНрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛
рдЬрд╛рдВрдЪ WITH lt AS ( SELECT pid , locktype , mode , timepoint , queryid , blocking_pids , MIN ( timepoint ) OVER (PARTITION BY pid , locktype ,mode ) as started FROM activity_hist.archive_locking WHERE timepoint between pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND NOT granted AND queryid IS NOT NULL GROUP BY pid , locktype , mode , timepoint , queryid , blocking_pids ) SELECT lt.pid , lt.locktype , lt.mode , lt.started , lt.queryid , lt.blocking_pids , COUNT(*) * interval '1 second' as duration FROM lt GROUP BY lt.pid , lt.locktype , lt.mode , lt.started , lt.queryid , lt.blocking_pids ORDER BY 4 
 рдЙрджрд╛рд╣рд░рдг  |  QUERYID рджреНрд╡рд╛рд░рд╛ LOCKTYPES рджреНрд╡рд╛рд░рд╛ рд▓реЛрдХреЗрдХреНрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛
 + ---------- + ------------------------- + ------------ -------- + ------------------------------ + ---------- ---------- + -------------------- + ------------------ -
 |  рдкрд┐рдб |  рд▓реЙрдХрдЯрд╛рдЗрдк |  рдореЛрдб |  рд╢реБрд░реВ рдХрд┐рдпрд╛ |  рдХреНрд╡реЗрд░реА |  block_pids |  рдЕрд╡рдзрд┐
 + ---------- + ------------------------- + ------------ -------- + ------------------------------ + ---------- ---------- + -------------------- + ------------------ -
 |  11288 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {11092} |  00:03:34
 |  11626 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 21.380921 |  389015618226997618 |  {12380} |  00:00:29
 |  11626 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 21.380921 |  389015618226997618 |  {11092} |  00:03:25
 |  11626 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 21.380921 |  389015618226997618 |  {12213} |  00:01:55
 |  11626 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 21.380921 |  389015618226997618 |  {12751} |  00:00:01
 |  11629 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 24.331935 |  389015618226997618 |  {11092} |  00:03:22
 |  11629 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 00: 24.331935 |  389015618226997618 |  {12007} |  00:00:01
 |  12007 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 05: 03.327933 |  389015618226997618 |  {11629} |  00:00:13
 |  12007 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 05: 03.327933 |  389015618226997618 |  {11092} |  00:01:10
 |  12007 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 05: 03.327933 |  389015618226997618 |  {11288} |  00:00:05
 |  12213 |  рд▓реЗрди-рджреЗрди |  рд╢реЗрдпрд░реЙрдХ |  2019-09-17 10: 06: 07.328019 |  389015618226997618 |  {12007} |  00:00:10  QUERYID рджреНрд╡рд╛рд░рд╛ LOCKTYPES рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЬрд╛рдВрдЪ WITH lt AS ( SELECT pid , locktype , mode , timepoint , queryid , blocking_pids , MIN ( timepoint ) OVER (PARTITION BY pid , locktype ,mode ) as started FROM activity_hist.archive_locking WHERE timepoint between pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND granted AND queryid IS NOT NULL GROUP BY pid , locktype , mode , timepoint , queryid , blocking_pids ) SELECT lt.pid , lt.locktype , lt.mode , lt.started , lt.queryid , lt.blocking_pids , COUNT(*) * interval '1 second' as duration FROM lt GROUP BY lt.pid , lt.locktype , lt.mode , lt.started , lt.queryid , lt.blocking_pids ORDER BY 4 
 рдЙрджрд╛рд╣рд░рдг  |  QUERYID рджреНрд╡рд╛рд░рд╛ LOCKTYPES рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
 + ---------- + ------------------------- + ------------ -------- + ------------------------------ + ---------- ---------- + -------------------- + ------------------ -
 |  рдкрд┐рдб |  рд▓реЙрдХрдЯрд╛рдЗрдк |  рдореЛрдб |  рд╢реБрд░реВ рдХрд┐рдпрд╛ |  рдХреНрд╡реЗрд░реА |  block_pids |  рдЕрд╡рдзрд┐
 + ---------- + ------------------------- + ------------ -------- + ------------------------------ + ---------- ---------- + -------------------- + ------------------ -
 |  11288 |  рд░рд┐рд╢реНрддрд╛ |  RowExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {11092} |  00:03:34
 |  11092 |  рд▓реЗрди-рджреЗрди |  ExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {} |  00:03:34
 |  11288 |  рд░рд┐рд╢реНрддрд╛ |  RowExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {} |  00:00:10
 |  11092 |  рд░рд┐рд╢реНрддрд╛ |  RowExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {} |  00:03:34
 |  11092 |  virtualxid |  ExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {} |  00:03:34
 |  11288 |  virtualxid |  ExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {11092} |  00:03:34
 |  11288 |  рд▓реЗрди-рджреЗрди |  ExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {11092} |  00:03:34
 |  11288 |  рдЯрдкрд▓ |  AccessExclusiveLock |  2019-09-17 10: 00: 00.302936 |  389015618226997618 |  {11092} |  00:03:34  рдкреНрд░рджрд░реНрд╢рди рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рд▓реЙрдХ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред- рдХреНрд╡рд┐рдб рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрд░реЛрдз = 389015618226997618, рдЬрд┐рд╕реЗ рдкреАрдЖрдИрдбреА тАЛтАЛ= 11288 рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, 2019-09-17 10:00:00 рд╕реЗ 3 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реБрджреНрдз рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред
- рд▓реЙрдХ рдХреЛ рдкреАрдЖрдИрдбреА тАЛтАЛ= 11092 рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
- Pid рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ = 11092 рдкрд░ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ = 389015618226997618 2019-09-17 рд╕реЗ рд╢реБрд░реВ 10:00:00 3 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд▓реЙрдХ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ред
рдкрд░рд┐рдгрд╛рдо
рдЕрдм, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдмрд╛рдд рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ - рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдЙрдореНрдореАрджреЛрдВ рдФрд░ рддрд╛рд▓реЗ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдиреЛрдЯ (рдУрд░реЗрдХрд▓ рдореЗрдЯрд▓рд┐рдВрдХ рдХреЗ рд╕рдорд╛рди) рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрди рдЬрд╛рдПрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЬреАрдердм рдкрд░ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред