2
我正在使用AdventureWorks2012数据库。查询优化器偏好索引扫描查找索引
我创建了下面的指数Sales.SalesOrderHeader
表
create index i1 on
sales.salesorderheader(purchaseordernumber,salespersonid)
include(orderdate,shipdate)
where purchaseordernumber is not null
and salespersonid is not null
当我运行下面的查询:
select
PurchaseOrderNumber,
OrderDate,
ShipDate,
SalesPErsonId
from sales.salesorderheader
where purchaseordernumber like '%po5%' and salespersonid is not null
我想到一个索引查找没有索引扫描,因为所有这些都列部分查询已经是索引的一部分。
我在某处读到,如果查询优化器认为索引扫描比索引查找便宜,那么我们将索引扫描。 但是,我不明白为什么在这种情况下发生。我们根本没有查询。
有人可以解释我吗。
非常感谢澄清。当我删除第一个%时,它开始工作。 –