首页 文章

为什么计算执行计划需要这么长时间?

提问于
浏览
0

我有一个问题,当我第一次运行我的查询(选择查询)时,某些表的重建或更新统计完成后,它运行得太慢,此查询的持续时间约为30分钟,但之后我运行它再次持续时间约为3秒,如何解决呢?

我在查询中设置统计IO并获得此结果:

  • 第二次

表'table1' . 扫描计数42,逻辑读取963118,物理读取0,预读取读取274,lob逻辑读取0,lob物理读取0,lob预读读取0 .

  • 第一次

表'table1' . 扫描计数42,逻辑读取977019,物理读取1143,预读读取946797,lob逻辑读取0,lob物理读取0,lob预读读取0 .

1 回答

  • 0

    为什么计算执行计划需要这么长时间?

    为什么你认为它正在计算执行计划?

    它是从磁盘读取的"First Time": read-ahead reads 946797 .

    预读读取可能大到512字节,因此30分钟内的946,797次预读读取平均为500 IO /秒,高达260MB /秒,任何一个都可能与IO系统可以提供的一样多 . 因此,这些预读读取可能会占到整个30分钟的执行时间 .

    第二次数据几乎都在内存中 .

相关问题