powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Какая последовательность выполнения sql-запроса?
11 сообщений из 11, страница 1 из 1
Какая последовательность выполнения sql-запроса?
    #37709661
Кантачес
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Общая структура: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
Сначала из базы в промежуточный результат выбирается вся инфа по нужным таблицам:
select ... from .... (включая join-ы), затем из промежуточного результата выбирается по остальным условиям необходимое.
Либо сначала select ... from ... where, а затем оставшиеся условия.
Какая последовательность?
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37709687
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КантачесОбщая структура: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
Сначала из базы в промежуточный результат выбирается вся инфа по нужным таблицам:
select ... from .... (включая join-ы), затем из промежуточного результата выбирается по остальным условиям необходимое.
Либо сначала select ... from ... where, а затем оставшиеся условия.
Какая последовательность?Есть такая штука - "план запроса". Если в запросе 1 - 2 таблицы - то там все просто, а если больше 10 - план может быть очень нетривиальным. У любой СУБД есть специальные команды, которые выводят план запроса, плюс возможности на этот план влиять, плюс документация по всему этому. Удачи в поисках
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37709705
Кантачес
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimber, то есть не существует единой последовательности, типа сначала выполняются те команды, затем результат фильтруется этими командами и т.п.?
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37709720
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кантачесrockclimber, то есть не существует единой последовательности, типа сначала выполняются те команды, затем результат фильтруется этими командами и т.п.?Что вы называете "единственной последовательностью"? Есть некоторый алгоритм, он в некотором роде "единственный" у каждой СУБД. Алгоритм рассчитан на построение такого плана выполнения запроса, который приведет к выполнению запроса за минимальное время. Сферическая СУБД в вакууме будет работать так, как вы написали - выберет все таблицы, сджойнит, отфильтрует лишнее и т. д. А конкретная СУБД в конкретной системе ограничена выделенной ей оперативной памятью, дисковым пространством, наличием определенных индексов и т. п. Все эти ограничения учитываются при построении плана. В общем и целом "единый алгоритм" можно описать так:
1. Проанализировать запрос
2. Оценить имеющиеся ресурсы
3. Оценить количество данных, которые надо выбирать
4. Построить план запроса
5. Выполнить план запроса

То, что вы написали в первом посте - это детализация пункта 5, и она, естественно, будет зависеть от результатов работы в пунктах 1 - 4.
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37709798
vladK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По стандарту SQL-92
1. Выполняется FROM - формируется рабочая таблица
2. к этому результату применются предикаты предложения WHERE
3. GROUP By
4. HAVING
5. SELECT
6. ORDER BY (формально не входит в определение SELECT)

(C) Джо Селко. SQL для профессионалов. Програмирование.
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37709833
Кантачес
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimber , да, алгоритм - не правильно назвал. Придется тогда удовлетворить любопытство стандартом, о котором vladK написал (спасибо за название книги) - на уровне 1с-ника, думаю, хватит.
Всем спасибо за помощь.
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37709999
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В HAVING вроде как доступны алиасы и переменные заданные в SELECT
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37710147
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettВ HAVING вроде как доступны алиасы и переменные заданные в SELECTВ одних СУБД доступны, в других СУБД не доступны.
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37710151
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кантачес, надо читать план исполнения по каждому программному продукту
отдельно. То что написано в SQL-92 - это чистая теория. Oracle к примеру
может использовать брать данные из индексов не обращаясь к таблицам или
если использована опция QueryRewrite и брать данные из mviews. Тоесть
1 пункт этого алгоритма ("По стандарту SQL-92") может быть очень сильно
расширен и дополнен.
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37712469
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladKПо стандарту SQL-92
По стандарту результат выполнения запроса должен быть эквивалентен тому, который был бы в этом случае. Но стандарт не говорит, что должно исполняться именно так. Правда и здесь есть некоторые тонкости (пожалуй, я для любой серьёзной СУБД возьмусь нарисовать запрос, который это нарушит).
...
Рейтинг: 0 / 0
Какая последовательность выполнения sql-запроса?
    #37713061
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КантачесОбщая структура: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
Сначала из базы в промежуточный результат выбирается вся инфа по нужным таблицам:
select ... from .... (включая join-ы), затем из промежуточного результата выбирается по остальным условиям необходимое.
Либо сначала select ... from ... where, а затем оставшиеся условия.
Какая последовательность?

В Оракле есть средство трассировки запросов.
Там очень подробно рассматривается любой запрос.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Какая последовательность выполнения sql-запроса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]