Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 А в чем разница?  [new]
Змей
Member

Откуда: Н.Новгород -> Москва
Сообщений: 192
А что, есть разница между
if exists (select * from t1 where ....)
и
if exists (select 1 from t1 where ....)

Скорость проверки зависит от того укажу я '*' или '1' ??
19 июл 04, 10:28    [816560]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Нет. А ещё лучше, сравни планы запросов.
19 июл 04, 10:29    [816564]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
Змей
Member

Откуда: Н.Новгород -> Москва
Сообщений: 192
И я о том же, а более старшие товарищи пытаются меня убедить, что это не так....
19 июл 04, 10:33    [816573]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Змей
И я о том же, а более старшие товарищи пытаются меня убедить, что это не так....

Ну и ткни их носом в план
19 июл 04, 10:45    [816621]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
Collins
Member

Откуда:
Сообщений: 57
Вопрос вдогонку: а так не будет быстрее:
if exists (select TOP 1 from t1 where ....)
?
19 июл 04, 10:50    [816648]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
не будет


для спящего время бодрствования равносильно сну
19 июл 04, 10:54    [816661]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
Glory
Member

Откуда:
Сообщений: 104760
BOL - Subqueries with EXISTS
When a subquery is introduced with the keyword EXISTS, it functions as an existence test. The WHERE clause of the outer query tests for the existence of rows returned by the subquery. The subquery does not actually produce any data; it returns a value of TRUE or FALSE.
19 июл 04, 10:54    [816664]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
pavelch
Member

Откуда: г. Иваново
Сообщений: 272
Судя по плану не должна, планы одинаковые.
19 июл 04, 10:59    [816686]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 1001
Напиши set statistics io on
и сравни результаты, чего гадать???
19 июл 04, 11:01    [816695]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
Змей
Member

Откуда: Н.Новгород -> Москва
Сообщений: 192
все проделал. все сравнил. разницы никакой.
да и как указал Glory

The subquery does not actually produce any data

так что....


ткнул носом "отцов" в форум:) и пошли они... дальше с умными лицами:)
19 июл 04, 11:30    [816853]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Приучил бы "отцов" своих планы любить иногда просматривать
19 июл 04, 11:37    [816891]     Ответить | Цитировать Сообщить модератору
 Re: А в чем разница?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Этот спор идет уже давно. Вполне возможно он имеет под собой основу в виде практических результатов для разных серверов. Думаю что конкретные результаты показывающие преимущество exists (select TOP 1 перед exists (select * именно практические, т.е. вытекают из использования таблиц конкретной структуры(и совокупности индексов), на серверах конкретной версии, при совершенно конкретных установках сессии.
Например при той же SET ARITHABORT { ON | OFF }, которая как известно не меняя плана все равно влияет на скорость работы.
19 июл 04, 11:46    [816924]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить