Назад | Перейти на главную страницу

Как объяснить запрос в PostgreSQL 8.3, в котором есть переменные связывания

Мне нужно объяснить оператор SQL, созданный приложением в PostgreSQL 8.3. Я записал оператор SQL в журнал, но в нем много переменных связывания. Могу ли я каким-либо образом объяснить этот оператор SQL?

Когда я попробовал использовать переменные связывания, парсеру это не понравилось. Если я изменю переменные привязки на фактические значения, используемые в операторе, не изменит ли это потенциально путь доступа к данным?

План на самом деле может отличаться в зависимости от предоставляемых вами ценностей, поэтому нет возможности делать то, что вы хотите. Просто добавьте несколько реалистичных примеров значений для оптимизации / настройки вашего запроса.

Подробнее:

Использование переменных связывания исключает этап синтаксического анализа для каждого связанного запроса после первого. Этот шаг не представлен в плане объяснения. Однако планирование и выполнение запроса происходят после шага привязки, поэтому ваш план объяснения не работает.

Вот основной процесс создания запроса в PostgreSQL (по крайней мере, в последний раз, когда я его использовал, а это было несколько лет):

Получить -> Разобрать -> Привязать -> План -> Выполнить -> Вернуть