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

  1. Was ist DB-Modul pg_stat_statements?

  2. Warum wird von Clients die Aktivierung angefordert?

  3. Wie wird sie aktiviert?

Auflösung resolution

  1. 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_statements zu shared_preload_libraries in postgresql.conf hinzugefü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

  2. 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.

  3. pg_stat_statements

    1. Ü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.3
      

      Falls nicht installiert, installieren Sie es.

      code language-none
      $ apt-get install postgresql-contrib-9.3
      
    2. Ä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_statements als auch auto_explain verwenden, verwenden Sie ONE-Eintrag und trennen Sie ihn durch Kommas.

      code language-none
      shared_preload_libraries = 'auto_explain,pg_stat_statements'
      
    3. Führen Sie in der zu überwachenden Datenbank CREATE Abfrage aus:

      Keine Erweiterungserstellung für auto_explain erforderlich, nur für pg_stat_statements.

      code language-none
      psql
      postgres=# \c mydatabase
      mydatabase=# CREATE EXTENSION pg_stat_statements;
      
    4. Fügen Sie im Abschnitt BENUTZERDEFINIERTE OPTIONS von postgresql.conf die folgenden Zeilen hinzu:

      code language-none
      pg_stat_statements.max = 5000
      pg_stat_statements.track = all
      pg_stat_statements.save = on
      
    5. 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;
    
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f