2
AdventureWorks2012 데이터베이스를 사용하고 있습니다.쿼리 최적화 프로그램이 인덱스 검색보다 인덱스 스캔을 선호합니다.
select
PurchaseOrderNumber,
OrderDate,
ShipDate,
SalesPErsonId
from sales.salesorderheader
where purchaseordernumber like '%po5%' and salespersonid is not null
내가있는 모든 열로, 인덱스가 아닌 인덱스 스캔을 추구 기대 :
은 내가 아래 쿼리를 실행하면Sales.SalesOrderHeader
테이블
create index i1 on
sales.salesorderheader(purchaseordernumber,salespersonid)
include(orderdate,shipdate)
where purchaseordernumber is not null
and salespersonid is not null
을에서 다음 인덱스를 생성 쿼리의 일부가 이미 인덱스의 일부입니다.
쿼리 최적화 프로그램이 인덱스 검색보다 비용이 저렴하다고 느낀다면 scan을 인덱싱합니다. 그러나이 경우 왜 발생하는지 이해할 수 없습니다. 우리는 전혀 조회하지 않습니다.
누군가 나를 설명해 주시겠습니까?
설명해 주셔서 감사합니다. 첫 번째 %를 제거하는 순간 작동을 시작합니다. –