有个SQL,在pl/sql上执行第一次要40来秒,后面执行就只要1秒不到,怎么样才能让第一次执行就很快呢?
发布网友
发布时间:2022-04-08 05:49
我来回答
共3个回答
热心网友
时间:2022-04-08 07:19
先告诉下你oracle中sql处理机制吧
像你说的这个情况,就是oracle中的预编译sql过程,它会将你运行过的sql当做一个模板存在内存里,当你下次运行结构与这个sql一样的语句时,然后就直接使用之前的那个sql的缓存,然后换一下where条件的参数值,跳过了后面的很多处理过程,所以你会发现后面再运行类似的sql,处理效率会高很多。
根据我上面的推断,想让sql第一次执行快,只能是让查出来的结果集尽可能的少,但又不能改变它的sql结构,否则就错了。。
热心网友
时间:2022-04-08 08:37
做不到的,任意数据库都有这个特性.
因为第一次运行是一次预编译的过程.这个里面必然要占用一定的时间,然後後期的查询就会快很多.
热心网友
时间:2022-04-08 10:11
一般后面的执行都要比第一快 因为要编译,分析等等 内在的处理 后面再执行速度就会快很多,