任何SQL语句都需要将请求传递到服务器,在服务器上进行解析、准备和执行此SQL,在将结果返回给应用之前可能还需要进行数据库物理IO操作。因此,应用应该避免发出不必要的SQL,什么是不必要的SQL请求呢?
1. 请求解析已经解析过的SQL语句
2. 向数据库请求最近已经请求过的静态(没有发生变化的)数据
优化解析
解析是为执行SQL所做的准备过程,涉及语法检查、权限、对象的有效性、以及创建执行计划等过程。(解析后的SQL语句放在shared pool中)。
硬解析,不仅耗费CPU,还会在有大量会话想要同时缓存SQL语句到共享池时造成争用。
所以,我们要降低硬解析,而使用的方法通常有:绑定变量以及更好的游标管理。
今天先写到这里....
待续