【问题标题】:T-SQL QUERY FILTERING RESULTING IN INFINITE EXECUTIONT-SQL 查询过滤导致无限执行
【发布时间】:2020-04-11 19:02:24
【问题描述】:

只是分享我的经验,也许我可以得到一些澄清/确认。

我正在执行一个返回客户信息的脚本。 此脚本至少有 5 到 10 个连接表(带有枢轴连接表),并且最有可能返回至少 100k 条记录。

问题是,当我尝试在 WHERE 子句中添加过滤器 - “STATUS != 'CLOSED'”时,我的查询将永远运行。 当我将其更改为“STATUS != 'CLOSE'”时,我的查询至少会运行 2 分钟。

另外,请注意“CLOSED”不存在。

这是某种错误吗?还是我错过了什么?

【问题讨论】:

    标签: sql-server tsql sql-server-2012


    【解决方案1】:

    很可能是因为它需要扫描所有记录并输出它们,在 CLOSE 示例中它可能排除了很多记录。 如果不共享查询,执行计划很难在这里发表评论。 此外,通常不建议在一个查询中包含 10 个表连接、数据透视和其他内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多