72 похожих чатов

Подскажите плз, в постгресе есть explain analyze - выводит реальный

план запроса. Но как я понял из прочитанного на postgrespro, то explain analyze выполняет запрос для того, чтобы отдать план запроса. Я не понимаю вот что, если запрос будет ресурсоёмкий, то не повредит ли текущей производительности сервера (как я понимаю это делается прям на бою)? Или нет такого запроса, выполнив который, сервер ощутимо напряжётся? Может кто-нибудь вкратце пояснить как это обычно применяется?

15 ответов

15 просмотров

Кажется там есть два варианта этой команды, с и без выполнения

EXPLAIN - покажет просто, как планировщик оценивает прохождение узлов. EXPLAIN ANALYZE - запрос выполнится на самом деле и пройдет все узлы. Так же показывает доп статистику.

Alexey-Dronov Автор вопроса
Denis
EXPLAIN - покажет просто, как планировщик оценивае...

Да, понимаю. Мне вот интересно analyze реально выполняет запрос. А такая работа может как-то ощутимо нагрузить сервер (особенно если анализируются несколько запросов)?

https://postgrespro.ru/docs/postgresql/9.6/sql-explain С параметром ANALYZE оператор будет выполнен на самом деле, а не только запланирован. При этом в вывод добавляются фактические сведения о времени выполнения, включая общее время, затраченное на каждый узел плана (в миллисекундах) и общее число строк, выданных в результате. Это помогает понять, насколько близки к реальности предварительные оценки планировщика.

Alexey Dronov
Да, понимаю. Мне вот интересно analyze реально вып...

Да, талантливый запрос выполнится и может нормально нагрузить систему.

Alexey-Dronov Автор вопроса
Alexey Dronov
Да, её и читал

А чего тогда спрашиваешь?

Alexey-Dronov Автор вопроса
Ilya Zviagin
А чего тогда спрашиваешь?

я спрашиваю именно про analyze. Denis как раз ответил на мой вопрос

Alexey Dronov
Да, понимаю. Мне вот интересно analyze реально вып...

Может конечно. Про несколько запросов - не понятно, поскольку explain не может несколько запросов обрабатывать

Alexey-Dronov Автор вопроса
Denis
Да, талантливый запрос выполнится и может нормальн...

Спасибо. Я почему спрашиваю. Начал тестером-нагрузчиком работать и мне сказали почитать на тему планов запроса в постгресе. И вот я думаю, когда мне нужно будет анализировать план запроса, то наверняка придётся использовать analyze. И если это можно будет делать только на бою, то это ведь может быть чревато? Хотя наверное будет использоваться какой-нибудь тестовый стен

Alexey-Dronov Автор вопроса
Ilya Zviagin
Может конечно. Про несколько запросов - не понятн...

ага, а если один запрос посмотрели, а потом на очереди ещё несколько нужно будет, значит по очереди запускать... как я понимаю

Повредит. Но если нужны реальные результаты — то деваться некуда.

Alexey Dronov
Спасибо. Я почему спрашиваю. Начал тестером-нагруз...

. И вот я думаю, когда мне нужно будет анализировать план запроса, то наверняка придётся использовать analyze. Нет, вовсе не обязательно И если это можно будет делать только на бою, то это ведь может быть чревато? Может Хотя наверное будет использоваться какой-нибудь тестовый стен Можно и так

Alexey Dronov
Спасибо. Я почему спрашиваю. Начал тестером-нагруз...

> то наверняка придётся использовать analyze Да, придётся. Без ANALYZE (и дополнительных опций уже для него) анализировать планы обычно практически бесполезно (разве что нет другого выхода, например когда запрос "зависает", т.е. выполнялся бы несколько часов/дней). > то это ведь может быть чревато? Может, а что поделаешь... но для примерного / предварительного анализа лучше работать на тестовом кластере баз, да. > Хотя наверное будет использоваться какой-нибудь тестовый стен Дело в том, что при использовании исключительно тестового стенда есть риск "оптимизировать" запрос именно под него, а в реальности всё будет наоборот ("на бою" от этих изменений станет только хуже).

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта