我有一个问题,当第一次运行查询(选择查询)后,某些表的重建或更新统计信息完成时,它运行太慢并且此查询的持续时间约为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。
答案 0 :(得分:0)
为什么要计算执行计划花这么长时间?
您为什么认为它正在计算执行计划?
它是从磁盘read-ahead reads 946797
读取的“第一次”。
预读可能高达512字节,因此30分钟内946,797个预读平均为500 IO / sec ,最高可达260MB / sec, IO系统可以提供的最大数量。因此,这些预读可能会占用整个30分钟的执行时间。
第二次数据几乎全部存储在内存中。