налаштування log_min_duration_statement ігнорується


15

Я бігаю Postgresql 9.1на Ubuntu. Точна версія Postgresql, 9.1+129ubuntu1як показує мій менеджер пакунків.

У мене є 2 бази даних, які активно використовуються, і вони використовуються з віддаленого сервера.

Я хочу реєструвати запити, які мають тривалий час виконання. Тому я встановив у /etc/postgresql/9.1/main/postgresql.confфайлі такі параметри

log_min_duration_statement = 10000
log_statement = 'mod'

тому Postgresql записуватиме запити, що займають більше 10 секунд.

Але коли я reloadналаштовую postgres, Postgresql починає реєструвати кожен запит, що відповідає log_statementзначенню. Що я встановив тривалість 100 секунд, щоб бути впевненим

log_min_duration_statement = 100000

Але Postgresql продовжує вести журнал кожного запиту, який відповідає log_statementзначенню, незалежно від log_min_duration_statementзначення.

Установка log_statementдля , noneздавалося , щоб зупинити реєстрацію.

Чи є щось, що я пропустив у налаштуваннях?


Вся справа в тому, що ви записуєте об'єднання двох множин, а не перетин його. Я не знаю, чи можна це зробити так, як ви хочете.
dezso

Отже, я повинен відключити (прокоментувати), log_statementщоб log_min_duration_statementце працювало?
FallenAngel

Якщо ви просто хочете , щоб реєструвати всі довго виконуються операторів (будь це SELECT, UPDATEабо який - або DDL), то так.
dezso

Відповіді:


21

Ви були поруч. Ваша остання ідея - це насправді шлях:

log_statement = none
log_min_duration_statement = 10000

Тоді жоден оператор не буде реєструватися, за винятком тих, що працюють довше 10 секунд - включаючи сам рядок запиту. Можливо, журнал припинився, оскільки 10 секунд - це високий поріг. Я нормально використовую 2 секунди, але YMMV.

Ця відповідна відповідь про SO має більше:
Не вдається заставити log_min_duration_statement працювати


3
Дозвольте додати, що за замовчуванням log_statementє none, тому не встановлення його чи встановлення noneмає однаковий ефект.
dezso
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.