SQL缓存问题,第一次查慢,第二次查快 10
请问,当执行一个SQL语句时,第一次查时间很慢,第二次查会快非常的多(尽管第二次查的条件有所不同,如第一次查的条件是姓名=‘张三’第二次查的条件是如姓名=‘李四’)。。。...
请问,当执行一个SQL语句时,第一次查时间很慢,第二次查会快非常的多(尽管第二次查的条件有所不同,如第一次查的条件 是 姓名=‘张三’ 第二次查的条件是 如姓名=‘李四’)。。。
请问是为什么呢,网上说的是缓存问题。。。那这么说来缓存并不是直接读第一次查到数据了,因为第二次查出来的数据因为条件不一样而变化,那它读的缓存读的是什么呢,执行计划?
另外,假如我程序其中的一条语句执行起来很慢,第二次就会快,但由于这条语句经常会被执行,那我能不能将这个缓存强制存起来,以后每次查询都可以有 如第二次查询的那样速度效果呢、
谢谢!!
我说的快不仅仅是条件一样的快,而是且条件不一样时也是快很多啊
如我第一次查询 select ************* where 姓名='张三' 可能要1分钟()
第二次查询 select ************* where 姓名='李四' 很快,可能只需要5秒
第三次查询 select ************* where 姓名='张三' 这次也很快,可能也只是几秒
条件已经不是一样的了,所以应该不能读上次一次所查到的结果集了吧 展开
请问是为什么呢,网上说的是缓存问题。。。那这么说来缓存并不是直接读第一次查到数据了,因为第二次查出来的数据因为条件不一样而变化,那它读的缓存读的是什么呢,执行计划?
另外,假如我程序其中的一条语句执行起来很慢,第二次就会快,但由于这条语句经常会被执行,那我能不能将这个缓存强制存起来,以后每次查询都可以有 如第二次查询的那样速度效果呢、
谢谢!!
我说的快不仅仅是条件一样的快,而是且条件不一样时也是快很多啊
如我第一次查询 select ************* where 姓名='张三' 可能要1分钟()
第二次查询 select ************* where 姓名='李四' 很快,可能只需要5秒
第三次查询 select ************* where 姓名='张三' 这次也很快,可能也只是几秒
条件已经不是一样的了,所以应该不能读上次一次所查到的结果集了吧 展开
3个回答
展开全部
查询时,数据库引擎会判断,如果数据在内存中,则会从内存读取数据,如果数据不在内存在,则先从硬盘读到内存,然后再供查询。
所以第一次查的时候,根据你的语句,数据库引擎会把一些数据从硬盘读到内存,第二次再查的时候,就从内存读数据,就快了很多了。
oracle有一个功能是让表常驻内存。
所以第一次查的时候,根据你的语句,数据库引擎会把一些数据从硬盘读到内存,第二次再查的时候,就从内存读数据,就快了很多了。
oracle有一个功能是让表常驻内存。
追问
我指的快,不仅是查询条件一样,查询条件不一样时也快啊 如第一次姓名为张三,第二次为李四
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ykj_fj的答案是正确的。
从内存中读取数据的速度要比从硬盘中读取的速度快的多。
从内存中读取数据的速度要比从硬盘中读取的速度快的多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询