大家好!最近在进行程序优化的时候,无法排除掉缓存的影响。
例如:第一次执行一个sql用时大约1分钟,第二次执行的时候(数据与第一次一致)就只用几秒就可以查出结果。
从网上查找资料已经用以下sql清空缓存:ALTER SYSTEM FLUSH BUFFER_CACHE;但是第二次执行消耗的时间和第一次执行还是差很多,请问这是什么原因?
例如:第一次执行一个sql用时大约1分钟,第二次执行的时候(数据与第一次一致)就只用几秒就可以查出结果。
从网上查找资料已经用以下sql清空缓存:ALTER SYSTEM FLUSH BUFFER_CACHE;但是第二次执行消耗的时间和第一次执行还是差很多,请问这是什么原因?
1) consistent gets
2) physical reads
补充一下,所有的数据和查询sql语句,索引都是一致的,只是第一次执行第二次执行的区别(一般体现在select语句上)。
关于tangren大哥给出的方法,不好意思现在准备考驾照一直没有时间(这个是以前优化时遗留的问题),上班又很忙,过两天测试一下把跟踪结果的作业提上(只能那时再结贴了,嘿嘿)。
再次感谢大家的帮助