Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что быстрее? Где почитать? / 13 сообщений из 13, страница 1 из 1
23.11.2006, 09:31
    #34148879
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
Господа, теоретический вопрос по языку SQL.
Есть ли разница в скорости выполнения запросов

select <fields> from <table>
inner join
inner join
inner join
where <table>.<field> = ...

и

select <fields> from
(select * from <table> where <table>.<field> = ...) as ...
inner join
inner join
inner join,

если <table> ОЧЕНЬ велика?

Эмпирически (то бишь методом тыка) получил, что первый запрос в частном случае работает на 10% времени дольше. Но то проверялось, повторюсь, в одном случае.

И где можно вообще просветиться на предмет рационального написания SQL запросов?
...
Рейтинг: 0 / 0
23.11.2006, 11:50
    #34149527
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
Подозреваю, что если вы в первом случае оформите условие отбора как pre-join, то получите как минимум не меньшую производительность, чем во втором. Но вообще, планы запросов смотрите.
...
Рейтинг: 0 / 0
23.11.2006, 13:15
    #34149973
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
noisetteГоспода, теоретический вопрос по языку SQL.
Есть ли разница в скорости выполнения запросов
Теоретически разницы быть не должно. Практически же недостатки конкретного оптимизатора конкретной СУБД могут привести к неоправданному замедлению, причем в любом из случаев.
...
Рейтинг: 0 / 0
23.11.2006, 16:33
    #34150890
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
Пасиб. А ссылочки, где просветиться правильно-оптимальным построением запросов нету?
...
Рейтинг: 0 / 0
28.11.2006, 12:32
    #34160362
Urhtang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
noisetteПасиб. А ссылочки, где просветиться правильно-оптимальным построением запросов нету?
э... э... нет ответа :) если оракл то для начала - Том Кайт.
...
Рейтинг: 0 / 0
28.11.2006, 13:50
    #34160758
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
noisetteГоспода, теоретический вопрос по языку SQL.
Есть ли разница в скорости выполнения запросов

select <fields> from <table>
inner join
inner join
inner join
where <table>.<field> = ...

и

select <fields> from
(select * from <table> where <table>.<field> = ...) as ...
inner join
inner join
inner join,

если <table> ОЧЕНЬ велика?

Эмпирически (то бишь методом тыка) получил, что первый запрос в частном случае работает на 10% времени дольше. Но то проверялось, повторюсь, в одном случае.

И где можно вообще просветиться на предмет рационального написания SQL запросов?

тут правильно сказали - планы запросов нуна смотреть... но вот из практики - я бы не рекомендовал применять звёздочку в подзапросах...

(круглый)
...
Рейтинг: 0 / 0
28.11.2006, 18:56
    #34162081
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
kolobok0но вот из практики - я бы не рекомендовал применять звёздочку в подзапросах...Ага, а если учесть что звездочка в некоторых базах уже объявлена как deprecated syntax? :)

Нету универсального ответа по абстрактному SQL. Все зависит от базы данных. А некоторые особо умные оптимизаторы при этом еще обращают внимание на распределение связываемых значений в таблицах.
...
Рейтинг: 0 / 0
28.11.2006, 19:12
    #34162128
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
White Owl kolobok0но вот из практики - я бы не рекомендовал применять звёздочку в подзапросах...Ага, а если учесть что звездочка в некоторых базах уже объявлена как deprecated syntax? :)

А рекомендация НЕ использовать там, где не deprecated как-то этому противоречит?)
...
Рейтинг: 0 / 0
28.11.2006, 19:16
    #34162146
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
kolobok0, а сделайте милость, скажите, что такое "планы запросов"? а то может пользуюсь, а не знаю.
а что до зведочки, так ее я поставил просто, чтоб какой-то вложенный запрос для примера написать :о)
...
Рейтинг: 0 / 0
28.11.2006, 19:18
    #34162150
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
DocAl White Owl kolobok0но вот из практики - я бы не рекомендовал применять звёздочку в подзапросах...Ага, а если учесть что звездочка в некоторых базах уже объявлена как deprecated syntax? :)

А рекомендация НЕ использовать там, где не deprecated как-то этому противоречит?)Экхм... мартышка к старости слаба глазами стала :) Вот не , то я и не заметил :)
...
Рейтинг: 0 / 0
29.11.2006, 13:47
    #34163967
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
noisettekolobok0, а сделайте милость, скажите, что такое "планы запросов"? а то может пользуюсь, а не знаю.
а что до зведочки, так ее я поставил просто, чтоб какой-то вложенный запрос для примера написать :о)

план запроса - это те телодвижение SQL сервака которые он делает для получения результата. ну например...
сделали Вы простой селект...оптимизатор подумал и написал что вот эту таблицу он будет сканировать полностью (фулл), а вот эту по индексу... Тут он сначала вычислит органичение на выборку по такой то таблице, далее полученный результат прогонит по фулл выборки "верхних" таблиц...
для получения плана запроса есть команда
EXPLAIN ваш-сиквол-запрос

правда вот входит ли она в стандарт SQL - тут вот я пас. Но на оракле и постгресе - должна дышать..

(круглый)
...
Рейтинг: 0 / 0
29.11.2006, 16:29
    #34164735
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
kolobok0, видимо, не входит, ибо, в частности, квери аналайзер никак не выделяет это слово
...
Рейтинг: 0 / 0
29.11.2006, 18:02
    #34165155
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее? Где почитать?
kolobok0EXPLAIN ваш-сиквол-запрос
правда вот входит ли она в стандарт SQL - тут вот я пас. Но на оракле и постгресе - должна дышать..
Нет, не входит.
А вот например все сайбезовские БД показывают планы запроса в системном isql, даже с графикой.
А можно специальными опициями сказать БД чтобы она сохраняла планы всех-всех запросов в специальной таблице, потом вытаскиваешь их оттуда и рассматриваешь :)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что быстрее? Где почитать? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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