【问题标题】:SQL Server Performance relatedSQL Server 性能相关
【发布时间】:2019-07-05 20:34:45
【问题描述】:

我有一个 SQL 查询和两个不同日期的同一数据库的恢复。一个还原是 11 月 7 日,另一个是 12 月 10 日。在 11 月 7 日的数据库还原中,查询运行 5 小时,在 12 月 10 日的数据库还原中,相同的查询在 23-25 秒内运行。

我比较了查询中涉及的表的两个数据库的索引,但两者的索引相似。然后我在两个数据库还原上检查了同一查询的查询执行计划。在两个执行计划中发现了许多差异。在 11 月 7 日数据库还原的查询执行计划中,与 12 月 10 日数据库还原相比,我看到了许多嵌套连接。 SQL Server 在 11 月 7 日数据库中使用 Nested Join 的地方,与在 12 月 10 日数据库中使用 Merge Join 的地方相同。

谁能帮助解释为什么我们在查询执行计划中存在这种差异,以及为什么查询在 11 月 7 日数据库中运行缓慢。

【问题讨论】:

  • 统计数据过期?
  • 尝试重建两个数据库中表的索引
  • 不看执行计划是不可能的。

标签: sql-server performance indexing


【解决方案1】:

请检查索引碎片和REBUILD\REORGANIZE所需的索引并再次检查查询性能。

【讨论】:

  • 谢谢..会这样做并检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多