Предложение LIKE против предложения IN - что лучше? - PullRequest
0 голосов
/ 02 августа 2010

Какой из них лучше использовать условие в операторе where или в операторе соединения?Может кто-нибудь помочь, пожалуйста?

Ответы [ 3 ]

1 голос
/ 02 августа 2010

Любое условие, которое не позволяет оптимизатору SQL-сервера использовать индекс, это плохое условие.

Если в вашем случае лучше использовать оператор in или like, который говорит только план запроса.

Обычно подстановочный знак «%» в начале строки запрещает SQL Server использовать индекс.Иногда оператор in не позволяет использовать индекс.

1 голос
/ 02 августа 2010

Вот хороший справочник:

http://msdn.microsoft.com/en-us/library/aa933232%28SQL.80%29.aspx

0 голосов
/ 02 августа 2010

Если требование фильтровать строки по известному набору фиксированных значений, тогда , где x in (a, b, c, ...) будет работать лучше, чем , где x like ' g ' потому что может быть невозможно создать подходящее предложение like.

Если необходимо выполнить фильтрацию по префиксу, тогда , где x, как и «prefix%» , будет работать лучше, чем , где x in (a, b, c, ...) потому что может быть невозможно создать правильное предложение in ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...