使用LIKE关键字了解索引性能

时间:2019-09-10 02:17:24

标签: sql sql-server

我正在使用Microsoft的AdventureWorks2017数据库。

我已经执行以下操作:

create index idx_CarrierTrackingNumber on [Sales].[SalesOrderDetail] (CarrierTrackingNumber);
go
--------------------------------------------------------------------------------

select 
    CarrierTrackingNumber
from
    [Sales].[SalesOrderDetail]
where
    CarrierTrackingNumber like '%4';
go

当我查看执行计划时,它显示以下内容:

Index Still Used despite LIKE operator

因为我的LIKE搜索中的第一个字符是通配符,所以不应该使用表扫描代替索引扫描吗?

编辑#1:添加了我相信这一点的原因

我正在读一本书SQL Performance explained,在书中写着:

  

相反的情况也是可能的:以如下开头的LIKE表达式   通配符。这样的LIKE表达式不能用作访问   谓语。如果没有,数据库必须扫描整个表   提供访问谓词的其他条件。

我误会了作者在说什么吗?

0 个答案:

没有答案