PreparedStatement&Batch

2019-04-11  本文已影响0人  傻猪侠

PreparedStatement

Batch操作

Mysql和Oracle是否使用预编译的思考

Mysql(mysql 5.7.20和mysql-connector-java-8.0.15.jar)

Mysql PS 执行详细参考

Oracle待续

image.png

oracle里面除了查询结果集缓存外,还有SQL缓存,缓存在SGA共享区域,可以使用软解析,而跳过更解析。

语句缓存的好处
• ORACLE执行SQL语句时,先将SQL语句的字串通过一个哈希算法得出一个哈希值,然后检查共享池中是否已存在这个哈希值,若有就用已缓存的执行计划来执行这个语句(CACHE HIT 缓存命中),若没有(CACHE MISS 缓存缺失)则需进行解析,解析需要完成下面的工作:

Ø 语法检查;
Ø 语义检查,看参考对象是否存在,类型是否正确;
Ø (如果是CBO优化模式)收集参考对象的统计;
Ø 检查用户的权限是否足够;
Ø 从许多可能的执行路径中选择一条作为执行计划;
Ø 生成语句的编译版本(P-CODE)。

• 解析是一个昂贵的操作,因为过程中需要消耗许多资源;
• 最大化CACHE HIT是调整共享池的目标

DBMS.png
上一篇 下一篇

猜你喜欢

热点阅读