大家好!最近在进行程序优化的时候,无法排除掉缓存的影响。
例如:第一次执行一个sql用时大约1分钟,第二次执行的时候(数据与第一次一致)就只用几秒就可以查出结果。
从网上查找资料已经用以下sql清空缓存:ALTER SYSTEM FLUSH BUFFER_CACHE;但是第二次执行消耗的时间和第一次执行还是差很多,请问这是什么原因?

解决方案 »

  1.   

    不能仅仅从时间上判断,你可以使用set atuo trace on来查看并比较一下
     1) consistent gets
     2) physical reads
      

  2.   

    首先感谢大家的关注。
    补充一下,所有的数据和查询sql语句,索引都是一致的,只是第一次执行第二次执行的区别(一般体现在select语句上)。
    关于tangren大哥给出的方法,不好意思现在准备考驾照一直没有时间(这个是以前优化时遗留的问题),上班又很忙,过两天测试一下把跟踪结果的作业提上(只能那时再结贴了,嘿嘿)。
    再次感谢大家的帮助