Campaign Classic v7 - Syfte och användning av db-modulen pg_stat_statements
Lär dig mer om syftet med och användningen av db-modulen pg_stat_statements i Adobe Campaign Classic v7.
Beskrivning description
Miljö
Adobe Campaign Classic v7 (ACC v7)
Problem/symtom
-
Vad är databasmodulen
pg_stat_statements? -
Varför ska klienter aktivera det?
-
Hur aktiveras det?
Upplösning resolution
-
Modulen pg_stat_statements tillhandahåller ett sätt att spåra körningsstatistik för alla SQL-satser som körs av en server.
Modulen måste läsas in genom att
pg_stat_statementsläggs till ishared_preload_librariesipostgresql.confeftersom ytterligare delat minne krävs.Det innebär att en serveromstart krävs för att lägga till eller ta bort modulen.
Länk https://www.postgresql.org/docs/9.4/pgstatstatements.html
-
Att implementera ett vytypsschema i den här tabellen som gör att vi kan övervaka frågor som tar lång tid.
På så sätt kan kunderna trimma dem och optimera prestandan.
Det här tillägget innehåller mätvärden för frågor som körs: vilka frågor som körs oftast och hur lång tid varje fråga tar.
-
pg_stat_statements-
Kontrollera att det officiella PostgreSQL Contrib-paketet för postgres-versionen är installerat.
code language-none $ dpkg -l | grep postgres postgresql-contrib-9.3Installera den om den inte är installerad.
code language-none $ apt-get install postgresql-contrib-9.3 -
Ändra
postgresql.confom du vill förhandsladda modulen vid start.Standard:
shared_preload_libraries = ''Nytt:
shared_preload_libraries = 'pg_stat_statements'Om du använder både
pg_stat_statementsochauto_explainanvänder du ONE-posten och avgränsar med kommatecken.code language-none shared_preload_libraries = 'auto_explain,pg_stat_statements' -
Kör
CREATE-frågan i den databas som du vill övervaka:Inget tillägg behöver skapas för
auto_explain, endast förpg_stat_statements.code language-none psql postgres=# \c mydatabase mydatabase=# CREATE EXTENSION pg_stat_statements; -
Lägg till raderna i avsnittet ANPASSAD OPTIONS i
postgresql.conf:code language-none pg_stat_statements.max = 5000 pg_stat_statements.track = all pg_stat_statements.save = on -
Starta om tjänsten för efterarbete.
Exempel: Få de fem mest kostsamma frågorna i databaserna.
code language-none SELECT query, calls, total_time, rows, 100.0*shared_blks_hit/nullif(shared_blks_hit+shared_blks_read,0) AS hit_percent from pg_stat_statements as s inner join pg_database as d on d.oid = s.dbid where d.datname = 'Database_Name' order by total_time desc limit 5; -