【发布时间】:2018-02-08 14:52:35
【问题描述】:
有一个由前端应用程序执行的 SQL Server 2017 选择语句。该查询具有三个连接和 UNION。每个 Join 语句都有一个子句,其中NAME LIKE '%ibm%'
但是,当我将 '%ibm%' 更改为 NAME LIKE %services% 时,它会像往常一样快速运行。
我重建了所有表的所有索引,并在列上创建了缺失的统计信息。这并没有改变查询性能。
【问题讨论】:
-
当你有一个像这样的前导通配符时,索引会变得无能为力。您的查询是 nonSARGable,因此性能将是一个挑战。
标签: sql-server sql-like query-performance database-indexes