|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
Доброго дня! Подскажите пожалуйста можно ли настроить логирование как в старой версии, не могу найти на версии 9.6 в лог попадают запросы с одной записью duration. В 12 версии общее время выполнения разбивается на фазы выполнения запроса, что делает лог вообще не читаемым каким то, особенно, если многострочные запросы. Было 2021-02-19 10:33:22.471 MSK [24988] LOG: duration: 120.202 ms SELECT ..... FROM .... WHERE $1 2021-02-19 10:33:22.471 MSK [24988] DETAIL: parameters: $1 = 764 Теперь стало 2021-02-19 10:33:22.471 MSK [24988] LOG: duration: 1.21 ms parse pdo_stmt_00000022: SELECT ..... FROM .... WHERE $1 2021-02-19 10:33:22.475 MSK [24988] LOG: duration: 3.360 ms bind pdo_stmt_00000022: SELECT ..... FROM .... WHERE $1 2021-02-19 10:33:22.475 MSK [24988] DETAIL: parameters: $1 = 764 2021-02-19 10:33:22.475 MSK [24988] LOG: duration: 110.556 ms execute pdo_stmt_00000022: SELECT ..... FROM .... WHERE $1 2021-02-19 10:33:22.475 MSK [24988] DETAIL: parameters: $1 = 764 2021-02-19 10:33:22.476 MSK [24988] LOG: duration: 0.065 ms statement: DEALLOCATE pdo_stmt_00000022 SELECT запросы соответственно по 100-700 строк. Превращают старые 702 строки в новые 2000 строк. Можно ли как то настроить и схлопнуть в старый формат такую детализацию? Чтоб все фазы выполнения были в общей строке? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 11:15 |
|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
Поставьте PDO::ATTR_EMULATE_PREPARES в true на приложении. Вы сами отправляете раздельно parse, bind и execute запросы. База честно, согласно своим настройкам, логирует. Большой вопрос, к слову, в осмысленности логирования единиц ms ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 11:57 |
|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
Melkij, логику работы запроса менять не хотелось бы, prepare делается на бд. Да и как будет работать сбор статистики, если prepare делать на стороне приложения, очевидно статистика будет сломана, каждый запрос будет падать в таблицу отдельной строкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 13:10 |
|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
kliff Melkij, логику работы запроса менять не хотелось бы, prepare делается на бд. Да и как будет работать сбор статистики, если prepare делать на стороне приложения, очевидно статистика будет сломана, каждый запрос будет падать в таблицу отдельной строкой. если prepare делается на БД то и в лог пойдет 3 запроса (parse/bind/execute) при этом зачастую может быть 2 запроса если parse уже выполнялся т.е. вы хотите то что противоречит логике работы вашей же... так не бывает... на 9.6 кстати все логгирование устроено ровно так же как и в новых версиях и если на 9.6 у вас логгируется по другому значит prepare на стороне базы отключен там. >>Да и как будет работать сбор статистики, если prepare делать на стороне приложения, очевидно статистика будет сломана, каждый запрос будет падать в таблицу отдельной строкой странная идея с чего вы это взяли? ps: большая часть проектов работает с отключенным server side prepare потому что он не совместим с transaction pooling режимом. pps: а зачем вы вообще все в лог пишете (а не там больше 100-1000ms)? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2021, 14:59 |
|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
Maxim Boguk, >>странная идея с чего вы это взяли? Как я понимаю, если prepare на бд, то приходит запрос вида select * from table where id = $1; и параметры к этому запросу отдельно. Соответственно в статистику select * from table where id = $1; падает как один и тот же запрос. Если на стороне приложения выполнить prepare, то parse, bind будут выполнены и на БД будут приходить запросы select * from table where id = 14; select * from table where id = 55; select * from table where id = 23; И для статистики все они будут разными Все запросы для своих целей были временно включены. Что то ничего хорошего не нарыл в документации, все-таки что лучше и в чем принципиальные плюсы, проблемы, какой так сказать тру стайл - на сервере делать prepare или в приложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 10:14 |
|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
kliff, про какую статистику вы говорите? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 10:24 |
|
Логирование в 12й версии
|
|||
---|---|---|---|
#18+
Melkij, pg_stat_statements ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 11:35 |
|
|
start [/forum/topic.php?fid=53&msg=40047101&tid=1994180]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
436ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 808ms |
0 / 0 |