Campaign Classic v7 - Zweck und Verwendung des DB-Moduls pg_stat_statement
Erfahren Sie mehr über den Zweck und die Verwendung von DB (Datenbank)-pg_stat_statements in Adobe Campaign Classic v7.
Beschreibung description
Umgebung
Adobe Campaign Classic v7 (ACC v7)
Problem/Symptome
-
Was ist DB-Modul
pg_stat_statements? -
Warum wird von Clients die Aktivierung angefordert?
-
Wie wird sie aktiviert?
Auflösung resolution
-
Das Modul pg_stat_states bietet eine Möglichkeit, Ausführungsstatistiken aller von einem Server ausgeführten SQL-Anweisungen zu verfolgen.
Das Modul muss geladen werden, indem
pg_stat_statementszushared_preload_librariesinpostgresql.confhinzugefügt werden, da es zusätzlichen gemeinsamen Speicher erfordert.Dies bedeutet, dass ein Neustart des Servers erforderlich ist, um das Modul hinzuzufügen oder zu entfernen.
Link https://www.postgresql.org/docs/9.4/pgstatstatements.html
-
Um ein Schema vom Typ Ansicht in dieser Tabelle zu implementieren, mit dem wir Abfragen überwachen können, die lange Zeit dauern.
Auf diese Weise können Kunden diese optimieren und die Leistung optimieren.
Diese Erweiterung bietet Metriken zur Ausführung von Abfragen, bei denen es sich um die am häufigsten ausgeführten Abfragen handelt und wie lange jede Abfrage dauert.
-
pg_stat_statements-
Überprüfen Sie, ob das offizielle PostgreSQL-Contrib-Paket für die Postgre-Version installiert ist.
code language-none $ dpkg -l | grep postgres postgresql-contrib-9.3Falls nicht installiert, installieren Sie es.
code language-none $ apt-get install postgresql-contrib-9.3 -
Ändern Sie
postgresql.conf, um das Modul beim Start vorab zu laden.Standard:
shared_preload_libraries = ''Neu:
shared_preload_libraries = 'pg_stat_statements'Wenn Sie sowohl
pg_stat_statementsals auchauto_explainverwenden, verwenden Sie ONE-Eintrag und trennen Sie ihn durch Kommas.code language-none shared_preload_libraries = 'auto_explain,pg_stat_statements' -
Führen Sie in der zu überwachenden Datenbank
CREATEAbfrage aus:Keine Erweiterungserstellung für
auto_explainerforderlich, nur fürpg_stat_statements.code language-none psql postgres=# \c mydatabase mydatabase=# CREATE EXTENSION pg_stat_statements; -
Fügen Sie im Abschnitt BENUTZERDEFINIERTE OPTIONS von
postgresql.confdie folgenden Zeilen hinzu:code language-none pg_stat_statements.max = 5000 pg_stat_statements.track = all pg_stat_statements.save = on -
Starten Sie den PostgreSQL-Service neu.
Beispiel: Die fünf teuersten Abfragen in den Datenbanken abrufen.
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; -