Отримайте статистику повільно запущених запитів


10

Моя програма бази даних виконує багато різних запитів. Я встановив log_min_duration_statement1000. Але запити, які реєструються там, не завжди є повільними, у більшості випадків вони займають лише кілька мс.

Чи можливо отримати статистику всіх запитів, і як часто вони займали більше 1000 мс?


1
Перевірте, чи це допомагає: налаштування log_min_duration_statement ігнорується . Або ви забули перезавантажити конфігурацію після зміни налаштувань.
Даніель Верете

Відповіді:


11

Встановіть розширення pg_stat_statements за допомогою команди SQL

CREATE EXTENSION pg_stat_statements

Ви можете переконатися, що ви створили це за допомогою відповідного користувача (наприклад, користувача, який використовує ваша програма або якогось облікового запису dba). Майте на увазі, що той, хто користувач створить розширення, він також йому володітиме.

Для цього буде потрібен перезапуск сервера, щоб він став корисним (оскільки вам доведеться змінити конфігурацію в postgresql.conf крихітним бітом, який впливає на споживання пам'яті), але він дасть вам статистику щодо всіх запитів.

Перегляньте сторінку документації для отримання додаткової інформації про те, що надає pg_stat_statements. Див. Тут для швидкого посилання на конфігурацію файлу конфігурації postgresql.conf для pg_stat_statements.

Після встановлення та запуску ви можете переглядати статистику, запитуючи перегляд pg_stat_statements ..

select * from pg_stat_statements;
-- or
select * from pg_stat_statements where total_time / calls > 200; -- etc ..

2

Як @JoishiBodio сказав, що ви можете використовувати pg_stat_statementsрозширення, щоб переглянути статистику повільних запитів. Для тих, хто бореться з установкою (як я):

  1. Перевірте, чи pg_stat_statementsнемає у списку доступних розширень:

    SELECT * FROM pg_available_extensions;
  2. Спробуйте встановити postgresql-contribпакет через ваш системний менеджер пакунків на Debian / Ubuntu:

    sudo apt-get install postgresql-contrib-9.5

Потім повторіть крок 1.

  1. Додати pg_stat_statementsв shared_preload_librariesконфігурації PostgreSQL:

через postgres.conf:

    shared_preload_libraries = 'pg_stat_statements'

через аргументи командного рядка (без лапок!):

    postgres -c shared_preload_libraries=pg_stat_statements
  1. Потім створіть розширення в базі даних:

    CREATE EXTENSION pg_stat_statements;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.