|
|
|
Supreme Being
      
участник
Last Login: 21.07.2006 17:11
Сообщ.: 484,
Visits: 5 211
|
|
| Никто не проверял насколько производителен оператор IN в случае большого количества значений для проверки (200 например)? Просто есть возможность использовать его, либо join''ить дополнительные таблицы, число которых будет все больше расти. Интересно что быстрее.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833,
Visits: 16 863
|
|
Джоинить всегда тормознее...
In, однозначно, быстрее..
|
|
|
|
|
Supreme Being
      
участник
Last Login: 26.10.2002 18:54
Сообщ.: 305,
Visits: 3 367
|
|
[quote="Alexey Spirin"]Джоинить всегда тормознее...
In, однозначно, быстрее..
[/quote]
Хoтелoсь бы знaть нa чём oснoвaнo тaкoе утверждение.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833,
Visits: 16 863
|
|
Уважаемые, извините, поторопился с ответом.
Сделал два запроса (как я понял, имелось ввиду именно так) и сравнил...
select *
from stat_hits
where sid in (select top 200 id from stat_sessions order by newid())
select *
from stat_hits S
inner join (select top 200 id from stat_sessions order by newid()) T on T.ID= S.SID
stat_session - 109102 записей
stat_hits - 362597 записей
Время абсолютно одинаковое. План запроса тот же.
Соответственно, разницы нет. Но здесь всего лишь две таблицы. Если будет больше, то ,я думаю, с IN будет быстрее.
|
|
|
|
|
новичок
      
участник
Last Login: 01.11.2005 14:54
Сообщ.: 1,
Visits: 12
|
|
Ага, а через временные таблицы ещё быстрее.
Удачи.:-))
|
|
|
|