Sql server 搜索特定值时查询性能较慢,但在同一列上使用不同的值时查询速度较快

Sql server 搜索特定值时查询性能较慢,但在同一列上使用不同的值时查询速度较快,sql-server,sql-like,query-performance,database-indexes,Sql Server,Sql Like,Query Performance,Database Indexes,具有由前端应用程序执行的SQL Server 2017 select语句。该查询有三个联接和并集。每个Join语句都有一个子句,其中包含名称“%ibm%” 但当我将“%ibm%”更改为%services%这样的名称时,它会像往常一样快速运行 我重建了所有表上的所有索引,并在列上创建了缺少的统计信息。这并没有改变查询性能。取决于精确查询的性能也将取决于类似查询中的特定值 由于特定查询为特定值返回成功的次数(如true)将增加联接/联合中的行数。如果使用前导通配符(如索引被呈现为无效)时。您的查询是

具有由前端应用程序执行的SQL Server 2017 select语句。该查询有三个联接和并集。每个Join语句都有一个子句,其中包含名称“%ibm%”

但当我将“%ibm%”更改为%services%这样的名称时,它会像往常一样快速运行


我重建了所有表上的所有索引,并在列上创建了缺少的统计信息。这并没有改变查询性能。

取决于精确查询的性能也将取决于类似查询中的特定值


由于特定查询为特定值返回成功的次数(如true)将增加联接/联合中的行数。

如果使用前导通配符(如索引被呈现为无效)时。您的查询是无争议的,因此性能将是一个挑战。我不明白您在这里说什么。但是返回的行数不是性能问题。我还使用了设置时间统计和IO统计,除了一个表之外,在读取数方面没有太大差异。最终的行数不是性能问题,但是如果在查询中执行子查询,或者在给出影响性能的最终结果之前的连接或并集,这就是为什么根据问题,它会根据值而变化