입니다. Sql Server에 대한 많은 기사에서 쿼리를 작성할 때 NOT 및 LIKE 연산자를 사용해서는 안됩니다. 색인 생성이 적용되지 않습니다.인덱싱은 SQL Server에서 LIKE 및 NOT 연산자와 작동하지 않습니다. MYTH는
예 :
SELECT [CityId]
,[CityName]
,[StateId]
FROM [LIMS].[dbo].[City]
WHERE CityId NOT IN(1, 2)
위의 쿼리를 실행했는데 인덱싱이 레코드를 필터링하는 데 사용되는 것으로 나타났습니다. 다음은 Clustered Index seek을 명확하게 보여주는 실행 계획입니다. 이것은 내가 생각하고 읽었던 것을 명백히 위반합니다.
검색 조건에 따라 다릅니다. 예를 들어, LIKE 연산자의 경우이 기사를 확인하십시오 ... http://use-the-index-luke.com/sql/where-clause/searching-for-ranges/like- 성능 튜닝 –
@BhrugeshPatel : 이미 해당 기사를 보았습니다. 제 사무실에서도 NOT과 LIKE 연산자를 피하는 문서를 보았습니다. 좋아요. 꽤 이해할 수 있습니다.하지만 색인 생성이이 부분에서 사용되지 않는 이유는 나를 위해 소화하기가 어렵습니다. –
글쎄, LIKE의 경우 검색이 %로 시작하면 what-so-ever 인덱스를 사용할 아무런 포인트가 없다. 그렇지 않으면 검색 문자열이 고정 문자로 시작되므로 색인 사용은 매우 그럴듯합니다. John이 말했듯이, 모든 데이터베이스는 알고리즘에 따라 사용 가능한 최상의 방법으로 갈 것입니다. –