首页 > 解决方案 > SQL Server 在大公司重用缓存查询计划时性能不佳

问题描述

我创建了一个查询来检索特定帐户的销售信息,还创建了一个用于性能的非聚集索引。

大多数时候,查询和索引工作正常。不幸的是,当我在一家销售数据较少的公司执行查询时,它没有执行,然后由一家大公司跟进。

这是因为查询优化器决定直接使用聚集索引而不是设计的非聚集索引,因为当公司数据较少时它更有效。

当在大公司执行相同的查询时,会出现问题,SQL 重用小公司生成的查询计划,这会导致大公司运行缓慢。

有没有更好的选择而不是使用索引提示/覆盖索引?

一些细节:

销售表:

| Company | RunningNumber | Account | SalesAmount | Status|

询问

SELECT SUM(SalesAmount) 
FROM SalesTable 
WHERE Company = @P1 AND Account = @P2

标签: sql-server

解决方案


推荐阅读