|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
Хотелось бы поинтересоваться, кто какими методами пользуется для хранения форматированного текста ( в данном случае плана выполнения полученного командой EXPLAIN) с целью дальнейшего анализа ? -TEXT[] -XML -JSONB ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 18:37 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
rinaceХотелось бы поинтересоваться, кто какими методами пользуется для хранения форматированного текста ( в данном случае плана выполнения полученного командой EXPLAIN) с целью дальнейшего анализа ? -TEXT[] -XML -JSONB EXPLAIN умеет уже отдавать нормальный готовый чего вам угодно FORMAT { TEXT | XML | JSON | YAML } https://www.postgresql.org/docs/11/sql-explain.html Не надо пытаться парсить вывод explain для человека это нездоровое занятие. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 19:35 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
Maxim BogukНе надо пытаться парсить вывод explain для человека это нездоровое занятие. Вопрос не про парсинг , а про хранение. Я хочу хранить планы выполнения интересующих меня запросов. Как вы правильно указали, в соответствии с документацией я могу хранить план в виде TEXT | XML | JSON ... Вопрос в другом - в каком формате удобнее хранить, что бы потом ,когда понадобится , проще было анализировать и сравнивать с текущим планом ? Пока остановился на TEXT[] : Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Если кто укажет на преимущества в использовании XML или JSOB , буду благодарен. Проект только начинается и очень далек даже от эскиза. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2018, 20:29 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
rinaceMaxim BogukНе надо пытаться парсить вывод explain для человека это нездоровое занятие. Вопрос не про парсинг , а про хранение. Я хочу хранить планы выполнения интересующих меня запросов. Как вы правильно указали, в соответствии с документацией я могу хранить план в виде TEXT | XML | JSON ... Вопрос в другом - в каком формате удобнее хранить, что бы потом ,когда понадобится , проще было анализировать и сравнивать с текущим планом ? Пока остановился на TEXT[] : Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Если кто укажет на преимущества в использовании XML или JSOB , буду благодарен. Проект только начинается и очень далек даже от эскиза. Так все зависит от того какой вывод вы храните... если вывод от explain текстового (который никак вообще не предназначен для автоматического разбора и анализа) - это text[] - но это идея неудачная потому что любая автоматизация приведет к необходимости парсить это в какую то машиночитаемую структуру. Лучше сразу писать в формате который не требует парсинга (а он для вывода explain весьма нетривиален). PS: слишком много у вас времени на руках ))). Ну вот заметили вы что план изменился (так он вообще у одного и того же запроса при РАЗНЫХ входных параметрах может быть вполне легитимно разный...) и что дальше будете с этим знанием делать? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 04:51 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
Maxim Boguk Ну вот заметили вы что план изменился (так он вообще у одного и того же запроса при РАЗНЫХ входных параметрах может быть вполне легитимно разный...) и что дальше будете с этим знанием делать? Идея немного другая . 1)По результатам pg_stat_statements собрать стандартный набор запросов от приложения . Сохранить среднее время выполнения , план запроса , quryid , может быть еще какую-то информацию. 2)мониторить pg_stat_statements , при значительном превышении среднего времени выполнения стандартного запроса поднимается алерт 3)первым делом сравнивается изменился ли план запроса по сравнению с базовым. Если изменился, начинается анализ текущего плана , статистики, данных и т.д. Просто использование некого подобия baseline сильно облегчит решение инцидентов типа - "было все хорошо а теперь все плохо". Но мысль хранить разные планы запросов , интересная , спасибо за наводку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 09:48 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
Maxim BogukЛучше сразу писать в формате который не требует парсинга (а он для вывода explain весьма нетривиален). Все равно , я в ручную не собираюсь парсить. Есть хороший сайт для этого explain depesz com Я им пользуюсь. Там как раз на вход дается текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 09:49 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
rinaceMaxim BogukЛучше сразу писать в формате который не требует парсинга (а он для вывода explain весьма нетривиален). Все равно , я в ручную не собираюсь парсить. Есть хороший сайт для этого explain depesz com Я им пользуюсь. Там как раз на вход дается текст. тогда просто text зачем вам массив текстов то? по 1 срочке хранить? а зачем? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 11:47 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
Maxim Boguk тогда просто text зачем вам массив текстов то? по 1 срочке хранить? а зачем? Вот так я получаю план выполнения для хранения : Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Вот так я получаю план выполнения для анализа Код: plaintext
На выходе получаю читаемый план для разбора ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 12:32 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 12:41 |
|
Хранение планов выполнения (текстового документа, в общем случае)
|
|||
---|---|---|---|
#18+
Melkijrinace, а вам не auto_explain contrib вообще нужен? Мне проще получить нужные мне планы из таблицы простейшими скриптами , чем искать в логе и копипастить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 12:55 |
|
|
start [/forum/topic.php?fid=53&msg=39746594&tid=1995445]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 150ms |
0 / 0 |