
Crestoff
20.02.2018
11:32:35
я тебя понял
щас попробую)

Google

Олег
20.02.2018
11:34:48
повторю свой вчерашний вопрос внятным языком. есть скуль, в нём делается prepared statement, его видно в full processlist; как мне посмотреть запрос с подставленными значениями?
сейчас там видно знаки вопроса вместо ряда значений
мне важно понять, какой тип передаётся в качестве значений - строка или число
лог запросов тут поможет?

Ilia
20.02.2018
11:37:32
Олег, я не знаю, но полагаю, что никак.
Например, в Oracle дела обстоят именно таким образом.

Олег
20.02.2018
11:37:49
это чёто хрень =\

Ilia
20.02.2018
11:38:14

Mikhail
20.02.2018
11:38:23
в Оракл и правда никак
только со стороны аппликации
за другие DB не скажу

Sergey
20.02.2018
11:39:04

Vladislav
20.02.2018
11:40:05
ээээ, погодите, почему в базе нельзя посмотреть лог? там же конечный запрос с параметрами должен работать

Mikhail
20.02.2018
11:40:31

Google

Олег
20.02.2018
11:40:31
там самописный объектный интерфейс поверх mysqli, поэтому со стороны приложения слегка запарно

Ilia
20.02.2018
11:40:31
Работать да, а логироваться не обязан

Vladislav
20.02.2018
11:40:55
а ну тут профайлер должен помочь

Mikhail
20.02.2018
11:40:57
*из продакшн ЬД

Ilia
20.02.2018
11:41:15

Vladislav
20.02.2018
11:41:46
я аж вздрогнул

Sergey
20.02.2018
11:42:06

Олег
20.02.2018
11:42:42

Vladislav
20.02.2018
11:43:55

Олег
20.02.2018
11:44:33
ставит set profiling=1; и сссия профилируется
идущие параллельно от приложения запросы не профилируются
и вообще оно депрекейтед и всех гонят в perfomance_schema

Vladislav
20.02.2018
11:45:40
хотя, на сколько я вижу, профайлинг так себе в мускуле, поэтому надо через логи делать
ДБА пускай включат логгирование и смотрите

lost
20.02.2018
11:46:03
нормальный там профайлинг, ну шо вы начинаете

Олег
20.02.2018
11:46:03
там я Дба

lost
20.02.2018
11:46:06
алло

Олег
20.02.2018
11:46:17
очень не хочется логи включать, там в час пик 300+ rps =\

Google

Vladislav
20.02.2018
11:46:19

lost
20.02.2018
11:46:35
так вы теплое с мягким путаете
профайл для конкретного запроса делается

Mikhail
20.02.2018
11:48:12

Олег
20.02.2018
11:49:01
а в сторону ps смотрел?
а там же не видно какой запрос работает. и даже если видно, то я сомневаюсь, что там будет что-то отличное от того, что я вижу в processlist

lost
20.02.2018
11:49:28
как это не видно... видно ещё как... если она у тебя включена, конечно

Mikhail
20.02.2018
11:49:44
я вот помню в постгре мой сисадмин что-то заводил такое с tcpdump-ом, что вытаскивал полные запросы

lost
20.02.2018
11:51:30
performance_schema.events_statements_history
Загляни сюда, учитывая что у тебя 300rps в пике, не думаю, что она у тебя будет перезаписываться быстро, и ты сможешь поймать свой квери...

Alex
20.02.2018
11:53:02

Mikhail
20.02.2018
11:53:46
нука

Alex
20.02.2018
11:53:57
скорее включал tail -f с логов на полную катушку

Mikhail
20.02.2018
11:55:06
не
tail я бы и сам включил
я точно помню, он какую-то магию творил

Олег
20.02.2018
11:55:20

Alex
20.02.2018
11:55:50

Google

Олег
20.02.2018
11:55:54
так что это или сильное колдунство, или другая ситуация

Alex
20.02.2018
11:56:12
вот я тоже думаю что, сказочно немного

lost
20.02.2018
11:56:51
в любом случае у тебя запрос отдельно от переменных не выполнится, а значит в ps он попадёт :)

Alex
20.02.2018
11:57:12
а если через курсор ? то поймаешь только фетчи

Mikhail
20.02.2018
11:57:34
вот, например
https://blog.timstoop.nl/posts/2008/11/03/sniffing-postgresql-queries-with-tsharkwireshark.html
wireshark имеет модуль, который это умеет

lost
20.02.2018
11:58:04
Ну давайте достанем телескоп, чтобы набрать номер на телефоне...

Mikhail
20.02.2018
11:58:14
не, я могу ему написать, но я дуумаю ,что он тоже не помнит

lost
20.02.2018
11:58:15
Без него же никак не получится...

Mikhail
20.02.2018
11:58:22
я таки думал, что tcpdump
не, я как программист всё ловлю со стороны приложения
оборачивая коннекшн к бд во враппер ,который логгирует все запросы с временим исполнения

Alex
20.02.2018
12:11:12
ну вот в wireshark еще поверю

Vladislav
20.02.2018
12:16:01
Я что-то не пойму, реально в этих базах нет логирования запросов?
Мне кажется, кто-то просто не хочет искать

Олег
20.02.2018
12:26:41
general_log подошёл, спасибо

Alex
20.02.2018
12:37:32
но иногда это мало чем помогает

Google

Vladislav
20.02.2018
12:38:55
Так задача узнать, что в параметры подставляется, в базы пишут именно исполняемые запросы

Alex
20.02.2018
12:40:30
в постгресе это разными строчками логируется
на отдельной базе получить что надо нет особых проблем
на проде - так се

Vladislav
20.02.2018
12:41:46
я что-то не понимаю, никто прод не логирует?
какой-то странный у вас прод

Alex
20.02.2018
12:44:52
далеко не все и не всё

Vladislav
20.02.2018
12:46:21
мне прям стало интересно, как дба проводят анализ без профилирования запросов

Alex
20.02.2018
12:51:02
а кто сказал что без профилирования ?
вроде речь про логирование была
а не про профилирование

Vladislav
20.02.2018
12:52:36
ну в моем понимании профайлинг сохраняет полный запрос, в случае с mysql это как-то недопрофайлинг

Anton
20.02.2018
12:53:05
@SLASH_CyberPunk есть там тьма разных, в т.ч. и расширенных
Топиккастер просто не хотел их применять боясь оверхеда

Vladislav
20.02.2018
12:53:34
тогда я не понимаю проблемы узнать запрос со значениями параметров

Rookie
20.02.2018
14:39:30
Ребята, время нубских вопросов. Я не дба. Скажите, нужно ли witness ноду кластера добавлять в список haproxy? Нужен ли на ней pgbouncer? Нужен ли в принципе pgbouncer в пг кластере со streaming repl? Witness нода - полноправный член кластера? То есть, помимо роли арбитра она выполняет все остальные функции standby ноды?

Al
20.02.2018
15:13:25

Ilia
20.02.2018
15:16:48
Увы

Al
20.02.2018
15:50:17
Увы
У меня глаз дергается когда вижу подобные многострочные запросы. Имхо но показатель
1. Либо база через ж
2. Либо человек сам не понимает чего он хочет найти
Особенно если попробовать представить как подобные портянки на стороне базы распарсиваются и пытаются испольнить. ?

lost
20.02.2018
16:05:10
ты ещё портянок не видывал...