рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
PostgreSQL рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ - рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ, рддрд╛рд▓реЗ, рдЯреЗрдмрд▓ рдЖрдБрдХрдбрд╝реЗред
рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк
рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рднрд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг рдпрд╛ "рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЗ рд▓рд┐рдП AWR" : рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди pg_stat_activity рдФрд░ pg_locks рдХрд╛ рдХреЛрдИ рдЗрддрд┐рд╣рд╛рд╕ рдирд╣реАрдВ рд╣реИред
Pgsentinel рдПрдХреНрд╕рдЯреЗрдВрд╢рди :
"
рд╕рднреА рд╕рдВрдЪрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрд╡реЗрд░реА рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - pg_stat_statements рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рдПрдХ рд╣реА рдХреНрд╡реЗрд░реАрдб (рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред "
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЙрдкрджреНрд░рд╡ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╣реИ, "
рд╕рднреА рд╕рдВрдЪрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ ", рдЕрд░реНрдерд╛рддред рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдмреЗрд╕ рдкрд░ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рд▓реЙрдХ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдЯреЗрдмрд▓ рдЖрдБрдХрдбрд╝реЗ рдирд╣реАрдВ рд╣реИред рдпрд╛рдиреА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕рдорд╛рдзрд╛рди рдЕрдзреВрд░рд╛ рд╣реИ: тАЬ
рдЕрднреА рддрдХ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддреИрдпрд╛рд░ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП "devel" рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкрде рдЪрд░ рдореЗрдВ pg_config рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред "ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ - рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрджреНрд░рд╡, рдФрд░ рдЧрдВрднреАрд░ рдЙрддреНрдкрд╛рджрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рд╛рдпрдж рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдлрд┐рд░, рдЖрдкрдХреЛ рдЕрдкрдиреА рдЦреБрдж рдХреА рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдЪреЗрддрд╛рд╡рдиреАред
рд╡рд┐рд╖рдп рдХреА рдирд╡реАрдирддрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдХреА рдЕрдкреВрд░реНрдгрддрд╛ рдХреЗ рдХрд╛рд░рдг, рд▓реЗрдЦ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рд╛рд░ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВред
рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╕рд╛рдордЧреНрд░реА рдмрд╛рдж рдореЗрдВ, рднрд╛рдЧреЛрдВ рдореЗрдВ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рдПрдЧреАред
рд╕рдорд╛рдзрд╛рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛
рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
Pg_stat_activity рдЗрддрд┐рд╣рд╛рд╕ рджреЗрдЦреЗрдВPg_locks рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрд░ рд▓реЙрдХ рдЗрддрд┐рд╣рд╛рд╕рдирд┐рд░реНрдгрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдкреНрд░рднрд╛рд╡
рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдПрдЬреЗрдВрдЯ рдХреЛ рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рдВ, рдХреБрдЫ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрдореЛрд░реА рдФрд░ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╕реЗ рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИред рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдкреНрд░рднрд╛рд╡ рдиреНрдпреВрдирддрдо рд╣реИред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪрд░рдгреЛрдВ
1. рд╕реЗрд╡рд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ
рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдЬрдЯрд┐рд▓ рди рдХрд░реЗрдВред
DROP SCHEMA IF EXISTS activity_hist ; CREATE SCHEMA activity_hist AUTHORIZATION monitor ;
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдпреЛрдЬрдирд╛ рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдЧрд░рд╛рдиреА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИредPg_stat_activity рдЗрддрд┐рд╣рд╛рд╕ рджреЗрдЦреЗрдВ
Pg_stat_activity рджреГрд╢реНрдп рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
activity_hist.history_pg_stat_activity: рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП - рдХреЛрдИ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдпрд╛ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВред
рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕реАрдзреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
activity_hist.archive_pg_stat_activity: DROP TABLE IF EXISTS activity_hist.archive_pg_stat_activity; CREATE TABLE activity_hist.archive_pg_stat_activity ( timepoint timestamp without time zone , datid oid , datname name , pid integer, usesysid oid , usename name , application_name text , client_addr inet , client_hostname text , client_port integer, backend_start timestamp with time zone , xact_start timestamp with time zone , query_start timestamp with time zone , state_change timestamp with time zone , wait_event_type text , wait_event text , state text , backend_xid xid , backend_xmin xid , query text , backend_type text , queryid bigint ) PARTITION BY RANGE (timepoint);
рдЪреВрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
рд╕рддреНрд░ рд▓реЙрдХ рдЗрддрд┐рд╣рд╛рд╕
рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рд▓реЙрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
activity_hist.history_locking: рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП - рдХреЛрдИ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдпрд╛ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВред
рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕реАрдзреЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
activity_hist.archive_locking: DROP TABLE IF EXISTS activity_hist.archive_locking; CREATE TABLE activity_hist.archive_locking ( timepoint timestamp without time zone , locktype text , relation oid , mode text , tid xid , vtid text , pid integer , blocking_pids integer[] , granted boolean ) PARTITION BY RANGE (timepoint);
рдЪреВрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
2. рд╡рд░реНрддрдорд╛рди рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рднрд░рдирд╛
рдХрд┐рд╕реА рджреГрд╢реНрдп рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рд╕реАрдзреЗ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ bash рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ plpgsql рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред
Plpgsql dblink рдлрд╝рдВрдХреНрд╢рди рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреГрд╢реНрдп рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ рдФрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реЗрд╡рд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
get_current_activity.sql CREATE OR REPLACE FUNCTION activity_hist.get_current_activity( current_host text , current_s_name text , current_s_pass text ) RETURNS BOOLEAN AS $$ DECLARE database_rec record; dblink_str text ; BEGIN EXECUTE 'SELECT dblink_connect(''LINK1'',''host='||current_host||' port=5432 dbname=postgres'|| ' user='||current_s_name||' password='||current_s_pass|| ' '')'; -------------------------------------------------------------------- --GET pg_stat_activity stats INSERT INTO activity_hist.history_pg_stat_activity ( SELECT * FROM dblink('LINK1', 'SELECT now() , datid , datname , pid , usesysid , usename , application_name , client_addr , client_hostname , client_port , backend_start , xact_start , query_start , state_change , wait_event_type , wait_event , state , backend_xid , backend_xmin , query , backend_type FROM pg_stat_activity ') AS t ( timepoint timestamp without time zone , datid oid , datname name , pid integer, usesysid oid , usename name , application_name text , client_addr inet , client_hostname text , client_port integer, backend_start timestamp with time zone , xact_start timestamp with time zone , query_start timestamp with time zone , state_change timestamp with time zone , wait_event_type text , wait_event text , state text , backend_xid xid , backend_xmin xid , query text , backend_type text ) ); --------------------------------------- --ACTIVITY_HIST.HISTORY_LOCKING INSERT INTO activity_hist.history_locking ( SELECT * FROM dblink('LINK1', 'SELECT now() , lock.locktype, lock.relation, lock.mode, lock.transactionid as tid, lock.virtualtransaction as vtid, lock.pid, pg_blocking_pids(lock.pid), lock.granted FROM pg_catalog.pg_locks lock LEFT JOIN pg_catalog.pg_database db ON db.oid = lock.database WHERE NOT lock.pid = pg_backend_pid() ') AS t ( timepoint timestamp without time zone , locktype text , relation oid , mode text , tid xid , vtid text , pid integer , blocking_pids integer[] , granted boolean ) ); PERFORM dblink_disconnect('LINK1'); RETURN TRUE ; END $$ LANGUAGE plpgsql;
рджреГрд╢реНрдп рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, systemd рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
pg_current_activity.service pg_current_activity.timer рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рд╕реМрдВрдкреЗрдВ:
# chmod 755 pg_current_activity.timer
# chmod 755 pg_current_activity.service
рд╣рдо рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
# systemctl рдбреЗрдорди-рд░реАрд▓реЛрдб
# systemctl рдкреНрд░рд╛рд░рдВрдн pg_current_activity.service
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣рд░ рджреВрд╕рд░реЗ рд╢реЙрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдмрдврд╝реЗрдЧрд╛ рдФрд░ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЙрддреНрдкрд╛рджрдХ рдХрд╛рдо рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
3. рд░рдЪрдирд╛рддреНрдордХ рдЗрддрд┐рд╣рд╛рд╕
рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛рдПрдБ * рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд░ рдШрдВрдЯреЗ рдирдП рд╕реЗрдХреНрд╢рди рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдкреБрд░рд╛рдирд╛ рдбреЗрдЯрд╛ * рдЯреЗрдмрд▓ рдбрд┐рд▓реАрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд┐рд╕реНрдЯреНрд░реА * рдЯреЗрдмрд▓ рдХрд╛ рд╕рд╛рдЗрдЬ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдЗрдВрд╕рд░реНрд╢рди рд╕реНрдкреАрдб рд╕рдордп рдХреЗ рд╕рд╛рде рдХрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдирдП рдЕрдиреБрднрд╛рдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг plpgsql function activity_hist.archive_current_activity рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдкрд░реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ (рд╕рдВрдЧреНрд░рд╣_pg_stat_activity рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред
рдПрдХ рдирдпрд╛ рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдПрдВ рдФрд░ рднрд░реЗрдВ EXECUTE format( 'CREATE TABLE ' || partition_name || ' PARTITION OF activity_hist.archive_pg_stat_activity FOR VALUES FROM ( %L ) TO ( %L ) ' , to_char(date_trunc('year', partition_min_range ),'YYYY')||'-'|| to_char(date_trunc('month', partition_min_range ),'MM')||'-'|| to_char(date_trunc('day', partition_min_range ),'DD')||' '|| to_char(date_trunc('hour', partition_min_range ),'HH24')||':00', to_char(date_trunc('year', partition_max_range ),'YYYY')||'-'|| to_char(date_trunc('month', partition_max_range ),'MM')||'-'|| to_char(date_trunc('day', partition_max_range ),'DD')||' '|| to_char(date_trunc('hour', partition_max_range ),'HH24')||':00' ); INSERT INTO activity_hist.archive_pg_stat_activity ( SELECT * FROM activity_hist.history_pg_stat_activity WHERE timepoint BETWEEN partition_min_range AND partition_max_range );
рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдПрдБ EXECUTE format ( 'CREATE INDEX '||index_name|| ' ON '||partition_name||' ( wait_event_type , backend_type , timepoint )' ); EXECUTE format ('CREATE INDEX '||index_name|| ' ON '||partition_name||' ( wait_event_type , backend_type , timepoint , queryid )' );
рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╣рд┐рд╕реНрдЯреНрд░реА_рд╕реНрдХреНрд░рд┐рдкреНрдЯ_рд╕реНрдЯреИрдЯ_рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЯреЗрдмрд▓ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ DELETE FROM activity_hist.history_pg_stat_activity WHERE timepoint < partition_max_range;
рдмреЗрд╢рдХ, рд╕рдордп-рд╕рдордп рдкрд░, рдкреБрд░рд╛рдиреЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреБрдирд┐рдпрд╛рджреА рд░рд┐рдкреЛрд░реНрдЯ
рджрд░рдЕрд╕рд▓, рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдмрд╣реБрдд рджреВрд░ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ Oracle AWR рдХреА рдпрд╛рдж рддрд╛рдЬрд╛ рдХрд░рддреА рд╣реИред
рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pg_stat_activity рдФрд░ pg_stat_statements рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЯреЗрдмрд▓реНрд╕ рдХреЛ 'queryid' рдХреЙрд▓рдо рдХреЛ рдЯреЗрдмрд▓реНрд╕ 'history_pg_stat_activity', 'ark_pg_stat_activity' рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрддрдВрдн рдорд╛рди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ - pg_stat_statements + pg_stat_activity + loq_query = pg_ash? ред
рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрд▓ CPU рд╕рдордп
рдкреНрд░рд╢реНрди: WITH hist AS ( SELECT aa.query ,aa.queryid , count(*) * interval '1 second' AS duration FROM activity_hist.archive_pg_stat_activity aa 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 backend_type = 'client backend' AND datname != 'postgres' AND ( aa.wait_event_type IS NULL ) ANDaa.state = 'active' GROUP BY aa.wait_event_type , aa.wait_event , aa.query ,aa.queryid UNION SELECT ha.query ,ha.queryid, count(*) * interval '1 second' AS duration FROM activity_hist.history_pg_stat_activity_for_reports ha 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 backend_type = 'client backend' AND datname != 'postgres' AND ( ha.wait_event_type IS NULL )AND ha.state = 'active' GROUP BY ha.wait_event_type , ha.wait_event , ha.query ,ha.queryid ) SELECT query , queryid , SUM( duration ) as duration FROM hist GROUP BY query , queryid ORDER BY 3 DESC
рдЕрдВрддрд░рд╛рд▓ ' WITH hist AS ( SELECT aa.query ,aa.queryid , count(*) * interval '1 second' AS duration FROM activity_hist.archive_pg_stat_activity aa 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 backend_type = 'client backend' AND datname != 'postgres' AND ( aa.wait_event_type IS NULL ) ANDaa.state = 'active' GROUP BY aa.wait_event_type , aa.wait_event , aa.query ,aa.queryid UNION SELECT ha.query ,ha.queryid, count(*) * interval '1 second' AS duration FROM activity_hist.history_pg_stat_activity_for_reports ha 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 backend_type = 'client backend' AND datname != 'postgres' AND ( ha.wait_event_type IS NULL )AND ha.state = 'active' GROUP BY ha.wait_event_type , ha.wait_event , ha.query ,ha.queryid ) SELECT query , queryid , SUM( duration ) as duration FROM hist GROUP BY query , queryid ORDER BY 3 DESC
* рдЕрдВрддрд░рд╛рд▓ ' WITH hist AS ( SELECT aa.query ,aa.queryid , count(*) * interval '1 second' AS duration FROM activity_hist.archive_pg_stat_activity aa 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 backend_type = 'client backend' AND datname != 'postgres' AND ( aa.wait_event_type IS NULL ) ANDaa.state = 'active' GROUP BY aa.wait_event_type , aa.wait_event , aa.query ,aa.queryid UNION SELECT ha.query ,ha.queryid, count(*) * interval '1 second' AS duration FROM activity_hist.history_pg_stat_activity_for_reports ha 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 backend_type = 'client backend' AND datname != 'postgres' AND ( ha.wait_event_type IS NULL )AND ha.state = 'active' GROUP BY ha.wait_event_type , ha.wait_event , ha.query ,ha.queryid ) SELECT query , queryid , SUM( duration ) as duration FROM hist GROUP BY query , queryid ORDER BY 3 DESC
рдмреИрдХрдПрдВрдб' рдФрд░ datname! = 'Postgres' рдФрд░ (aa.wait_event_type рд╣реИ рд╢реВрдиреНрдп) ANDaa.state = WITH hist AS ( SELECT aa.query ,aa.queryid , count(*) * interval '1 second' AS duration FROM activity_hist.archive_pg_stat_activity aa 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 backend_type = 'client backend' AND datname != 'postgres' AND ( aa.wait_event_type IS NULL ) ANDaa.state = 'active' GROUP BY aa.wait_event_type , aa.wait_event , aa.query ,aa.queryid UNION SELECT ha.query ,ha.queryid, count(*) * interval '1 second' AS duration FROM activity_hist.history_pg_stat_activity_for_reports ha 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 backend_type = 'client backend' AND datname != 'postgres' AND ( ha.wait_event_type IS NULL )AND ha.state = 'active' GROUP BY ha.wait_event_type , ha.wait_event , ha.query ,ha.queryid ) SELECT query , queryid , SUM( duration ) as duration FROM hist GROUP BY query , queryid ORDER BY 3 DESC
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
------------------------------------------------------------------- | TOTAL CPU TIME FOR QUERIES : 07:47:36 +----+----------------------------------------+-------------------- | #| queryid| duration +----+----------------------------------------+-------------------- | 1| 389015618226997618| 04:28:58 | 2| | 01:07:29 | 3| 1237430309438971376| 00:59:38 | 4| 4710212362688288619| 00:50:48 | 5| 28942442626229688| 00:15:50 | 6| 9150846928388977274| 00:04:46 | 7| -6572922443698419129| 00:00:06 | 8| | 00:00:01 +----+----------------------------------------+--------------------
рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп
рдкреНрд░рд╢реНрди: WITH hist AS ( SELECT aa.query ,aa.queryid , count(*) * interval '1 second' AS duration FROM activity_hist.archive_pg_stat_activity aa 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 backend_type = 'client backend' AND datname != 'postgres' AND ( aa.wait_event_type IS NOT NULL ) GROUP BY aa.wait_event_type , aa.wait_event , aa.query ,aa.queryid UNION SELECT ha.query ,ha.queryid, count(*) * interval '1 second' AS duration FROM activity_hist.history_pg_stat_activity_for_reports ha 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 backend_type = 'client backend' AND datname != 'postgres' AND ( ha.wait_event_type IS NOT NULL ) GROUP BY ha.wait_event_type , ha.wait_event , ha.query ,ha.queryid ) SELECT query , queryid , SUM( duration ) as duration FROM hist GROUP BY query , queryid ORDER BY 3 DESC
рдПрдХ рдЙрджрд╛рд╣рд░рдг: ------------------------------------------------------------------- | TOTAL WAITINGS TIME FOR QUERIES : 21:55:04 +----+----------------------------------------+-------------------- | #| queryid| duration +----+----------------------------------------+-------------------- | 1| 389015618226997618| 16:19:05 | 2| | 03:47:04 | 3| 8085340880788646241| 00:40:20 | 4| 4710212362688288619| 00:13:35 | 5| 9150846928388977274| 00:12:25 | 6| 28942442626229688| 00:11:32 | 7| 1237430309438971376| 00:09:45 | 8| 2649515222348904837| 00:09:37 | 9| | 00:03:45 | 10| 3167065002719415275| 00:02:20 | 11| 5731212217001535134| 00:02:13 | 12| 8304755792398128062| 00:01:31 | 13| 2649515222348904837| 00:00:59 | 14| 2649515222348904837| 00:00:22 | 15| | 00:00:12 | 16| 3422818749220588372| 00:00:08 | 17| -5730801771815999400| 00:00:03 | 18| -1473395109729441239| 00:00:02 | 19| 2404820632950544954| 00:00:02 | 20| -6572922443698419129| 00:00:02 | 21| 2369289265278398647| 00:00:01 | 22| 180077086776069052| 00:00:01 +----+----------------------------------------+--------------------
рдЦрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛
рд╕рдВрдмрдВрдзрд┐рдд рдЦреЛрдЬ: WITH hist AS ( SELECT aa.wait_event_type , aa.wait_event FROM activity_hist.archive_pg_stat_activity aa 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 backend_type = 'client backend' AND datname != 'postgres' AND aa.wait_event IS NOT NULL GROUP BY aa.wait_event_type , aa.wait_event UNION SELECT ha.wait_event_type , ha.wait_event FROM activity_hist.history_pg_stat_activity_for_reports ha 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 backend_type = 'client backend' AND datname != 'postgres' AND ha.wait_event IS NOT NULL GROUP BY ha.wait_event_type , ha.wait_event ) SELECT wait_event_type , wait_event FROM hist GROUP BY wait_event_type , wait_event ORDER BY 1 ASC,2 ASC
рдПрдХ рдЙрджрд╛рд╣рд░рдг: ------------------------------------------------ | WAITINGS FOR QUERIES +----------------------------------------------- | wait_event_type = Client| | wait_event = ClientRead| | Total time = 00:46:56| ------------------------------------------------ | #| queryid| duration +-----+--------------------+-------------------- | 1| 8085340880788646241| 00:40:20 | 2| | 00:03:45 | 3| 5731212217001535134| 00:01:53 | 4| | 00:00:12 | 5| 9150846928388977274| 00:00:09 | 6| 3422818749220588372| 00:00:08 | 7| 1237430309438971376| 00:00:06 | 8| 28942442626229688| 00:00:05 | 9| 4710212362688288619| 00:00:05 | 10|-5730801771815999400| 00:00:03 | 11| 8304755792398128062| 00:00:02 | 12|-6572922443698419129| 00:00:02 | 13|-1473395109729441239| 00:00:02 | 14| 2404820632950544954| 00:00:02 | 15| 180077086776069052| 00:00:01 | 16| 2369289265278398647| 00:00:01 +----------------------------------------------- | wait_event_type = IO| | wait_event = BufFileRead| | Total time = 00:00:38| ------------------------------------------------ | #| queryid| duration +-----+--------------------+-------------------- | 1| 28942442626229688| 00:00:38 +-----------------------------------------------
рдмрдВрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕
рдкреНрд░рд╢реНрди: SELECT MIN(date_trunc('second',timepoint)) AS started , count(*) * interval '1 second' as duration , pid , blocking_pids , relation , mode , locktype FROM activity_hist.archive_locking al 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 locktype = 'relation' GROUP BY pid , blocking_pids , relation , mode , locktype UNION SELECT MIN(date_trunc('second',timepoint)) AS started , count(*) * interval '1 second' as duration , pid , blocking_pids , relation , mode , locktype FROM activity_hist.history_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 locktype = 'relation' GROUP BY pid , blocking_pids , relation , mode , locktype ORDER BY 1
рдПрдХ рдЙрджрд╛рд╣рд░рдг: -------------------------------------------------- -------------------------------------------------- ---------------------------------
| рдмрдВрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕
+ ----- + ---------- + -------------------- + ---------- + -------------------- + -------------------- + -------- ------------ + --------------------
| # # рдкрд┐рдб | рд╢реБрд░реВ рдХрд┐рдпрд╛ | рдЕрд╡рдзрд┐ | block_pids | рд░рд┐рд╢реНрддрд╛ | рдореЛрдб | locktype
+ ----- + ---------- + -------------------- + ---------- + -------------------- + -------------------- + -------- ------------ + --------------------
| 1 | 26224 | 2019-09-02 19: 32: 16 | 00: 01: 45 | {26211} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 2 | 26390 | 2019-09-02 19: 34: 03 | 00: 00: 53 | {26211} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 3 | 26391 | 2019-09-02 19: 34: 03 | 00: 00: 53 | {26211} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 4 | 26531 | 2019-09-02 19: 35: 27 | 00: 00: 12 | {26211} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 5 | 27284 | 2019-09-02 19: 44: 02 | 00: 00: 19 | {27276} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 6 | 27283 | 2019-09-02 19: 44: 02 | 00: 00: 19 | {27276} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 7 | 27286 | 2019-09-02 19: 44: 02 | 00: 00: 19 | {27276} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 8 | 27423 | 2019-09-02 19:45:24 | 00: 00: 12 | {27394} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 9 | 27648 | 2019-09-02 19: 48: 06 | 00: 00: 20 | {27647} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 10 | 27650 | 2019-09-02 19: 48: 06 | 00: 00: 20 | {27647} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 11 | 27735 | 2019-09-02 19: 49: 08 | 00: 00: 06 | {27650} | 16541 | AccessExclusiveLock | рд╕рдВрдмрдВрдз
| 12 | 28380 | 2019-09-02 19: 56: 03 | 00: 01: 56 | {28379} | 16541 | AccessShareLock | рд╕рдВрдмрдВрдз
| 13 | 28379 | 2019-09-02 19: 56: 03 | 00: 00: 01 | 28377 | 16541 | AccessExclusiveLock | рд╕рдВрдмрдВрдз
| | | | | 28376 | |
рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕реВрдЪреА рдЗрддрд┐рд╣рд╛рд╕
рд╕рдВрдмрдВрдзрд┐рдд рдЦреЛрдЬ: SELECT blocking_pids FROM activity_hist.archive_locking al 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 locktype = 'relation' GROUP BY blocking_pids UNION SELECT blocking_pids FROM activity_hist.history_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 locktype = 'relation' GROUP BY blocking_pids ORDER BY 1
рдПрдХ рдЙрджрд╛рд╣рд░рдг: -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------
рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕реВрдЪреА рдЗрддрд┐рд╣рд╛рд╕
+ ---- + ---------- + ---------- + -------------------- + - --------- + -------------------- + ------------------- - + ------------------------------ + ----------------- -----------------------
| # # рдкрд┐рдб | usename | application_name | рдбрд╛рдЯрдирд╛рдо | рд╢реБрд░реВ рдХрд┐рдпрд╛ | рдЕрд╡рдзрд┐ | рд░рд╛рдЬреНрдп | рд╕рд╡рд╛рд▓
+ ---- + ---------- + ---------- + -------------------- + - --------- + -------------------- + ------------------- - + ------------------------------ + ----------------- -----------------------
| 1 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 31: 54 | 00: 00: 04 | рдмреЗрдХрд╛рд░ |
| 2 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 31: 58 | 00: 00: 06 | рд▓реЗрди-рджреЗрди рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп | рд╢реБрд░реВ;
| 3 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 32: 16 | 00: 01: 45 | рд▓реЗрди-рджреЗрди рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп | рддрд╛рд▓рд╛ рддрд╛рд▓рд┐рдХрд╛ wafer_data;
| 4 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 35: 54 | 00: 01: 23 | рдмреЗрдХрд╛рд░ | рдкреНрд░рддрд┐рдмрджреНрдз;
| 5 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 38: 46 | 00: 00: 02 | рд▓реЗрди-рджреЗрди рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп | рд╢реБрд░реВ;
| 6 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 38: 54 | 00: 00: 08 | рд▓реЗрди-рджреЗрди рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп | рддрд╛рд▓рд╛ рддрд╛рд▓рд┐рдХрд╛ wafer_data;
| 7 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-02 19: 39: 08 | 00: 42: 42 | рдмреЗрдХрд╛рд░ | рдкреНрд░рддрд┐рдмрджреНрдз;
| 8 | 26211 | рдЯрд╕рд░ | psql | tdb1 | 2019-09-03 07: 12: 07 | 00: 00: 52 | рд╕рдХреНрд░рд┐рдп | test_del () рдЪреБрдиреЗрдВ;
рд╡рд┐рдХрд╛рд╕ред
рджрд┐рдЦрд╛рдП рдЧрдП рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ Oracle AWR рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рд╡рд╛рд▓реА рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирдореВрдирд╛ рд╕рд╛рд░рд╛рдВрд╢ рд░рд┐рдкреЛрд░реНрдЯ + ------------------------------------------------- -----------------------------------
| рдЧрддрд┐рд╡рд┐рдзрд┐ рдФрд░ рдЖрд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдореЗрдХрд┐рдд рд░рд┐рдкреЛрд░реНрдЯред DATETIME: 09/03/2019 14:08
| ------------------------------------------------- -----------------------------------
| HOST: XXXX
| BEGIN_SNAPSHOT: 09/02/2019 14:08 END_SNAPSHOT: 09/03/2019 14:00
| ------------------------------------------------- -----------------------------------
| рд╡рд░реНрддрдорд╛рди DATABASES рдЖрдХрд╛рд░:
| DATABASE: рдореЙрдирд┐рдЯрд░
| рдЖрдХрд╛рд░ (рдПрдордмреА): 1370.00
| ------------------------------------------------- -----------------------------------
| рдЧреНрд░рд╛рд╣рдХ CPU рд╕рдордп: 19:44:22
| рдХрд╕реНрдЯрдорд░ рдЯрд╛рдЗрдорд┐рдВрдЧ: 78:49:16
|
| SQL DBTIME: 65:53:09
| SQL CPU рд╕рдордп: 19:05:21
| рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп: 21:50:46
| SQL IOTIME: 20:53:00
| SQL READ TIME: 20:52:55
| SQL рд░рд╛рдЗрдЯ рдЯрд╛рдЗрдо: 00:00:05
|
| SQL рдХреЙрд▓: 311293
-------------------------------------------------- -----------
| SQL рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдЧ рдкрдврд╝реЗрдВ: 13351563334
| SQL рд╢реЗрдпрд░ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдЕрдВрдХ: 2775427045
| SQL рд╢реЗрдпрд░ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рд╣рд┐рдЯреНрд╕ / READS%: 20.79
| SQL рд╢реЗрдпрд░ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдХрд┐рдП рдЧрдП рджрд┐рдирд╛рдВрдХ: 21105
| SQL рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмреНрд▓реЙрдЧ: 3656
|
| SQL рдЯреЗрдореНрдкрд░рд░реА рдмреНрд▓рд╛рдХ READS: 7464932
| рдПрд╕рдХреНрдпреВрдПрд▓ рдЯреЗрдореНрдкрд░рд░реА рдмреНрд▓реЙрдХреНрд╕ рд╕рд╛рдЗрдЯ: 10176024
-------------------------------------------------- -----------
|
| WAITINGS рд╕рд╛рдВрдЦреНрдпрд┐рдХреА
|
+ ------------------------------------------------- -----------------------------------
| рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рд╕рдордп рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рд╢реАрд░реНрд╖ 10 рдЕрднрд┐рдпреЛрдЧ
+ ----- + ------------------------------ + ------------ -------- + --------------------
| # # Wait_event_type | Wait_event | рдЕрд╡рдзрд┐
+ ----- + ------------------------------ + ------------ -------- + --------------------
| 1 | рдЧрддрд┐рд╡рд┐рдзрд┐ | LogicalLauncherMain | 11:21:01
| 2 | рдЧрддрд┐рд╡рд┐рдзрд┐ | рдЪреЗрдХрдкреЙрдЗрдВрдЯрдореИрди | 11:20:35
| 3 | рдЧрддрд┐рд╡рд┐рдзрд┐ | AutoVacuumMain | 11:20:31
| 4 | рдЧрддрд┐рд╡рд┐рдзрд┐ | WalWriterMain | 11:19:35
| 5 | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterMain | 10:14:19
| 6 | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterHibernate | 01:06:04
| 7 | рдЧрддрд┐рд╡рд┐рдзрд┐ | WalSenderMain | 00:04:05
| 8 | рдЧреНрд░рд╛рд╣рдХ | рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ | 00:04:00
| 9 | IO | BufFileWrite | 00:02:45
| 10 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00:02:14
+ ----- + ------------------------------ + ------------ -------- + --------------------
| рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реАрд░реНрд╖ 10 рд╕рдВрд╕реНрдХрд░рдг
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| # # Wait_event_type | Wait_event | рдЕрд╡рдзрд┐ | % dbtime
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| 1 | рддрд╛рд▓рд╛ | рд▓реЗрди-рджреЗрди | 11: 55: 37 | 18.1
| 2 | IO | DataFileRead | 07: 19: 43 | 11.12
| 3 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 46: 54 | 1.19
| 4 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 40: 37 | 1.03
| 5 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 31: 08 | 0.79
| 6 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 22: 12 | 0.56
| 7 | рдЯрд╛рдЗрдордЖрдЙрдЯ | PgSleep | 00: 10: 58 | 0.28
| 8 | рддрд╛рд▓рд╛ | рдЯрдкрд▓ | 00: 01: 30 | 0.04
| 9 | IO | BufFileWrite | 00: 01: 16 | 0.03
| 10 | IO | BufFileRead | 00: 00: 37 | 0.02
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рд╡реЙрдЗрдЯ рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫреВрдЯ
+ ----- + ------------------------------ + ------------ --------
| # # Wait_event_type | рдЕрд╡рдзрд┐
+ ----- + ------------------------------ + ------------ --------
| 1 | рдЧрддрд┐рд╡рд┐рдзрд┐ | 56:46:10
| 2 | IO | 00:05:13
| 3 | рдЧреНрд░рд╛рд╣рдХ | 00:04:00
| 4 | LWLock | 00:03:07
+ ----- + ------------------------------ + ------------ --------
| рдХреБрд▓рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП
+ ----- + ------------------------------ + ------------ -------- + --------------------
| # # Wait_event_type | рдЕрд╡рдзрд┐ | % dbtime
+ ----- + ------------------------------ + ------------ -------- + --------------------
| 1 | рддрд╛рд▓рд╛ | 12: 37: 44 | 19.17
| 2 | IO | 07: 21: 40 | 11.17
| 3 | LWLock | 00: 53: 26 | 1.35
| 4 | рдЧреНрд░рд╛рд╣рдХ | 00: 46: 54 | 1.19
| 5 | рдЯрд╛рдЗрдордЖрдЙрдЯ | 00: 10: 58 | 0.28
| 6 | рдЖрдИрдкреАрд╕реА | 00: 00: 04 | 0
+ ----- + ------------------------------ + ------------ -------- + --------------------
| рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| # # backend_type | dbname | Wait_event_type | Wait_event | рдЕрд╡рдзрд┐
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| 1 | рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд▓рд╛рдВрдЪрд░ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | LogicalLauncherMain | 11:21:01
| 2 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | рдЪреЗрдХрдкреЙрдЗрдВрдЯрдореИрди | 11:20:35
| 3 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд▓рд╛рдВрдЪрд░ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | AutoVacuumMain | 11:20:31
| 4 | рд▓реЗрдЦрдХ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | WalWriterMain | 11:19:35
| 5 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterMain | 10:14:19
| 6 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | BgWriterHibernate | 01:06:04
| 7 | рд╡рд╛рд▓реНрд╕реЗрдВрдбрд░ | | рдЧрддрд┐рд╡рд┐рдзрд┐ | WalSenderMain | 00:04:05
| 8 | рд╡рд╛рд▓реНрд╕реЗрдВрдбрд░ | | рдЧреНрд░рд╛рд╣рдХ | рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ | 00:04:00
| 9 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | BufFileWrite | 00:02:45
| 10 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00:02:05
| 11 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | DataFileRead | 00:01:10
| 12 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | IO | BufFileRead | 00:01:05
| 13 | рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00:00:45
| 14 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00:00:09
| 15 | рд▓реЗрдЦрдХ | | IO | рд╡реЙрдХ рд╡рд╛рдЗрдЯ | 00:00:08
| 16 | рд▓реЗрдЦрдХ | | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00:00:04
| 17 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | LWLock | рд╡реЙрд▓реНрд░рд╛рдЗрдЯрд▓рд╛рдЗрдЯ | 00:00:03
| 18 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | IO | рд╡реЙрдХ рд╡рд╛рдЗрдЯ | 00:00:02
| 19 | рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ | | IO | DataFileWrite | 00:00:02
| 20 | рдЪреЗрдХрдкреЙрдЗрдВрдЯ | | IO | ControlFileSyncUpdate | 00:00:01
| 21 | рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00:00:01
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| SQL рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + ----------
| # # рдХреНрд╡реЗрд░реА | dbname | Wait_event_type | Wait_event | рдЕрд╡рдзрд┐ | % dbtime
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + ----------
| 1 | 389015618226997618 | tdb1 | рддрд╛рд▓рд╛ | рд▓реЗрди-рджреЗрди | 09: 47: 43 | 14.87
| 2 | 389015618226997618 | tdb1 | IO | DataFileRead | 05: 47: 07 | 8.78
| 3 | | tdb1 | рддрд╛рд▓рд╛ | рд▓реЗрди-рджреЗрди | 02: 07: 54 | 3.24
| 4 | | tdb1 | IO | DataFileRead | 01: 30: 24 | 2.29
| 5 | 8085340880788646241 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 40: 20 | 1.02
| 6 | 389015618226997618 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 20: 41 | 0.52
| 7 | 389015618226997618 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 17: 30 | 0.44
| 8 | 2649515222348904837 | tdb1 | рдЯрд╛рдЗрдордЖрдЙрдЯ | PgSleep | 00: 10: 58 | 0.28
| 9 | 4710212362688288619 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 10: 44 | 0.27
| 10 | 9150846928388977274 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 10: 24 | 0.26
| 11 | 28942442626229688 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 07: 48 | 0.2
| 12 | 1237430309438971376 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 07: 32 | 0.19
| 13 | | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 04: 32 | 0.11
| 14 | | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 04: 13 | 0.11
| 15 | | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 03: 57 | 0.1
| 16 | 4710212362688288619 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 02: 26 | 0.06
| 17 | 3167065002719415275 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 02: 20 | 0.06
| 18 | 5731212217001535134 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 01: 53 | 0.05
| 19 | 1237430309438971376 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 01: 42 | 0.04
| 20 | 389015618226997618 | tdb1 | рддрд╛рд▓рд╛ | рдЯрдкрд▓ | 00: 01: 30 | 0.04
| 21 | 8304755792398128062 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 01: 29 | 0.04
| 22 | 28942442626229688 | tdb1 | IO | BufFileWrite | 00: 01: 16 | 0.03
| 23 | 9150846928388977274 | tdb1 | IO | DataFileRead | 00: 01: 07 | 0.03
| 24 | 28942442626229688 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 01: 03 | 0.03
| 25 | 9150846928388977274 | tdb1 | LWLock | рдмрдлрд░_ рдореИрдкрд┐рдВрдЧ | 00: 00: 44 | 0.02
| 26 | 28942442626229688 | tdb1 | IO | BufFileRead | 00: 00: 37 | 0.02
| 27 | 28942442626229688 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 00: 25 | 0.01
| 28 | 1237430309438971376 | tdb1 | IO | DataFileRead | 00: 00: 24 | 0.01
| 29 | 28942442626229688 | tdb1 | IO | DataFileRead | 00: 00: 22 | 0.01
| 30 | 5731212217001535134 | tdb1 | рддрд╛рд▓рд╛ | рд░рд┐рд╢реНрддрд╛ | 00: 00: 20 | 0.01
| 31 | 4710212362688288619 | tdb1 | IO | DataFileRead | 00: 00: 19 | 0.01
| 32 | 9150846928388977274 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 09 | 0
| 33 | 3422818749220588372 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 08 | 0
| 34 | 1237430309438971376 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 06 | 0
| 35 | 389015618226997618 | tdb1 | LWLock | рдмрдлрд░_ рдХреЙрдиреНрдЯреЗрдВрдЯ | 00: 00: 05 | 0
| 36 | 4710212362688288619 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 05 | 0
| 37 | 4710212362688288619 | tdb1 | LWLock | рдмрдлрд░_рд┐рдпреЛ | 00: 00: 04 | 0
| 38 | 28942442626229688 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 04 | 0
| 39 | 28942442626229688 | tdb1 | рдЖрдИрдкреАрд╕реА | рдкреИрд░реЗрд▓рд▓рдлрд┐рдирд┐рд╢ | 00: 00: 03 | 0
| 40 | 389015618226997618 | tdb1 | IO | DataFileWrite | 00: 00: 02 | 0
| 41 | -573080177181515999400 tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 | 0
| 42 | 2404820632950544954 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 | 0
| 43 | -6572922443698419129 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 | 0
| 44 | 8304755792398128062 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 | 0
| 45 | -147339510972929441239 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 02 | 0
| 46 | | tdb1 | LWLock | рдмрдлрд░_ рдХреЙрдиреНрдЯреЗрдВрдЯ | 00: 00: 01 | 0
| 47 | 180077086776069052 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 01 | 0
| 48 | | tdb1 | IO | DataFileWrite | 00: 00: 01 | 0
| 49 | 28942442626229688 | tdb1 | рдЖрдИрдкреАрд╕реА | MessageQueueReceive | 00: 00: 01 | 0
| 50 | 2369289265278398647 | tdb1 | рдЧреНрд░рд╛рд╣рдХ | рдХреНрд▓рд╛рдЗрдВрдЯрд░реЗрдб | 00: 00: 01 | 0
| 51 | 9150846928388977274 | tdb1 | IO | DataFileWrite | 00: 00: 01 | 0
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + ----------
|
| рдЧреНрд░рд╛рд╣рдХ SQL рд╕рд╛рдВрдЦреНрдпрд┐рдХреА
|
+ ------------------------------------------------- -----------------------------------
| CLIENT SQL рджреНрд╡рд╛рд░рд╛ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп | рдХреЙрд▓ | % dbtime | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| 06: 43: 19 | 36 | 10.2 | 85 рд╕рд┐рддрдВрдмрд░ | 17.38 | tdb1 | 389015618226997618
| 02: 06: 53 | 715 | 3.21 | 0.85 | 0.06 | tdb1 | 1237430309438971376
| 01: 52: 07 | 720 | 2.84 | 1.19 | 0.08 | tdb1 | 4710212362688288619
| 00: 39: 03 | 357 | 0.99 | 1.02 | 0.33 | tdb1 | 28942442626229688
| 00: 22: 00 | 8 | 0.56 | 0.96 | 0 | tdb1 | 2649515222348904837
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| рд╕реАрдкреАрдпреВ рдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХреА рдЧрдИ SQL SQL
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| cpu рд╕рдордп | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 16: 14: 38 | 36 | 10.2 | 06: 43: 19 | 85 рд╕рд┐рддрдВрдмрд░ | 17.38 | tdb1 | 389015618226997618
| 00: 13: 38 | 720 | 2.84 | 01: 52: 07 | 1.19 | 0.08 | tdb1 | 4710212362688288619
| 00: 11: 39 | 357 | 0.99 | 00: 39: 03 | 1.02 | 0.33 | tdb1 | 28942442626229688
| 00: 10: 58 | 8 | 0.56 | 00: 22: 00 | 0.96 | 0 | tdb1 | 2649515222348904837
| 00: 09: 44 | 715 | 3.21 | 02: 06: 53 | 0.85 | 0.06 | tdb1 | 1237430309438971376
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ I / O рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢рд┐рдд SQL SQL
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| io_wait рд╕рдордп | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 05: 47: 09 | 36 | 10.2 | 06: 43: 19 | 85 рд╕рд┐рддрдВрдмрд░ | 17.38 | tdb1 | 389015618226997618
| 00: 02: 15 | 357 | 0.99 | 00: 39: 03 | 1.02 | 0.33 | tdb1 | 28942442626229688
| 00: 00: 24 | 715 | 3.21 | 02: 06: 53 | 0.85 | 0.06 | tdb1 | 1237430309438971376
| 00: 00: 19 | 720 | 2.84 | 01: 52: 07 | 1.19 | 0.08 | tdb1 | 4710212362688288619
| 00: 00: 00 | 8 | 0.56 | 00: 22: 00 | 0.96 | 0 | tdb1 | 2649515222348904837
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рд╕рд╛рдЭрд╛ рдмрдлрд╝рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд SQL рдСрд░реНрдбрд░
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдмрдлрд╝рд░реНрд╕ рдкрдврд╝рддрд╛ рд╣реИ | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 2562353244 | 36 | 10.2 | 06: 43: 19 | 85 рд╕рд┐рддрдВрдмрд░ | 17.38 | tdb1 | 389015618226997618
| 11041689 | 357 | 0.99 | 00: 39: 03 | 1.02 | 0.33 | tdb1 | 28942442626229688
| 3303551 | 715 | 3.21 | 02: 06: 53 | 0.85 | 0.06 | tdb1 | 1237430309438971376
| 3242892 | 720 | 2.84 | 01: 52: 07 | 1.19 | 0.08 | tdb1 | 4710212362688288619
| 0 | 8 | 0.56 | 00: 22: 00 | 0.96 | 0 | tdb1 | 2649515222348904837
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| CLIENT SQL рдХреЛ рдбрд┐рд╕реНрдХ рд░реАрдбрд░реНрд╕ рдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп | рдХреЙрд▓ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 03: 37: 46 | 36 | 10.2 | 06: 43: 19 | 85 рд╕рд┐рддрдВрдмрд░ | 17.38 | tdb1 | 389015618226997618
| 00: 04: 07 | 357 | 0.99 | 00: 39: 03 | 1.02 | 0.33 | tdb1 | 28942442626229688
| 00: 00: 59 | 720 | 2.84 | 01: 52: 07 | 1.19 | 0.08 | tdb1 | 4710212362688288619
| 00: 00: 42 | 715 | 3.21 | 02: 06: 53 | 0.85 | 0.06 | tdb1 | 1237430309438971376
| 00: 00: 00 | 8 | 0.56 | 00: 22: 00 | 0.96 | 0 | tdb1 | 2649515222348904837
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| CLIENT SQL рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| рдХреЙрд▓ | рдкрдВрдХреНрддрд┐рдпрд╛рдБ | % dbtime | Total_time | % CPU | % IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 720 | 720 | 2.84 | 01: 52: 07 | 1.19 | 0.08 | tdb1 | 4710212362688288619
| 715 | 715 | 3.21 | 02: 06: 53 | 0.85 | 0.06 | tdb1 | 1237430309438971376
| 357 | 0 | 0.99 | 00: 39: 03 | 1.02 | 0.33 | tdb1 | 28942442626229688
| 36 | 36 | 10.2 | 06: 43: 19 | 85 рд╕рд┐рддрдВрдмрд░ | 17.38 | tdb1 | 389015618226997618
| 8 | 8 | 0.56 | 00: 22: 00 | 0.96 | 0 | tdb1 | 2649515222348904837
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| SQL рдкрд╛рда рдХреА рдкреВрд░реА рд╕реВрдЪреА
----------------------------------------------
...
рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдПред рдЕрдЧрд▓рд╛ рдЪрд░рдг рд▓реЙрдХ рдЗрддрд┐рд╣рд╛рд╕ (pg_stat_locks) рдХрд╛ рдЧрдарди рд╣реИ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рднрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдгред