sql 被保存在 share pool 后, 开始解析, 解析包括语句的语法, 检验及对象, 以确认该用于是否有该对象的权限, 如果这些都通过了, 接下来就要看这个语句之前是否被执行过, 如果是, oracle 将取回之前解析的信息并重用, 这就是软解析, 如果没有被执行过, 那么oracle就将执行所有的工作来为当前语句生成执行计划, 并将它存在于缓存中以便将来使用, 这就是硬解析. 硬解析需要做很多工作, 如果想看硬解析都干了什么, 最简单的办法是打开扩展SQL追踪, 执行一个语句然后查询追…