Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Фильтрация в ON / 6 сообщений из 6, страница 1 из 1
17.07.2002, 16:30:51
    #32037236
Bob
Bob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация в ON
Имеем

SELECT a.*,b.*
FROM a join b ON a.id=b.id and b.field='1'

и

SELECT a.*,b.*
FROM a join b ON a.id=b.id
WHERE b.field='1'

В общем случае b.field неиндексирован

Есть ли какие-то размышления относительно эффективности?
...
Рейтинг: 0 / 0
17.07.2002, 16:36:24
    #32037238
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация в ON
в общем второй вариант быстрее....
а так еще быстрее....
Код: plaintext
1.
2.
3.
SELECT a.*,b.* 
FROM a , b 
WHERE b.field='1' AND a.id=b.id 

и именно ='1' впереди....
а можно и так( и помоему еще быстрей)
Код: plaintext
1.
2.
3.
 SELECT a.*,t.* 
FROM a , (SELECT b.* FROM b WHERE b.id='1') as t
WHERE a.id=b.id
...
Рейтинг: 0 / 0
17.07.2002, 17:01:04
    #32037250
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация в ON
2Bob

А это не одно и то же?
...
Рейтинг: 0 / 0
17.07.2002, 17:10:46
    #32037255
Bob
Bob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация в ON
3JIA9I CyKA

Да в общем то нет. В более сложных случаях план существенно меняется

MiCe

Спасибо. Проверил, действительно быстрее. Интересно, ведь книги рекомендуют Join вместо Where
...
Рейтинг: 0 / 0
17.07.2002, 17:26:39
    #32037258
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация в ON
Спасибо. Проверил, действительно быстрее. Интересно, ведь книги рекомендуют Join вместо Where

Книги не рекомендуют join вместо where книги разъясняют, что при выполнении запроса данные фильтруются вначале по условиям в join, потом в where, а затем в having, из-за чего данные в случае outer соединений могут отличаться в зависимости от того, где задаешь условия объединения.
...
Рейтинг: 0 / 0
17.07.2002, 17:31:40
    #32037262
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация в ON
самое быстрое это where...
даже мелкомягкие везде его используют...
в случае сложных объединений join предпочтительней
и если обновляеш данные тож... да и при распределенных транзакциях аналогично...
К примерам , что выше, у меня в подзапросе отделяется минимальные данные поетому быренько получается..
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Фильтрация в ON / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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