oracle的SQL优化
来源:互联网 发布:java servlet生命周期 编辑:程序博客网 时间:2024/06/07 09:06
非优化sqlA
SELECT * FROM NDMP_ISSUE_TASK T
WHERE T.VALID_CODE = '$VALID_CODE$'
优化sqlB
SELECT * FROM NDMP_ISSUE_TASK T
WHERE T.VALID_CODE =#VALID_CODE:VARCHAR#
在ibatis/mybatis中,执行sql使用的是PreparedStatement(sql预编译的处理方式),在上述两条sql中,处理过程并不一致。以传入参数VALID_CODE :A123为例,sqlA执行sql是:
SELECT * FROM NDMP_ISSUE_TASK T
WHERET.VALID_CODE = 'A123'
sqlB执行sql是:
SELECT * FROM NDMP_ISSUE_TASK T
WHERET.VALID_CODE = ?
Oracle执行该sql的时候,先从sql池中寻找是否有该sql,如果找到,则直接执行,否则先预编译该sql,再执行并放入sql池。很明显,在不同参数多次执行的时候,sqlA是明显没法在sql池中找到的,但是sqlB可以找到,所以sqlB就少了预编译的过程,也就是可以一次编译,N次执行,明显提高处理过程效率(在大批量执行下,预计20-50倍的性能优化)。
LIKE优化
TABLE.COLUMN LIKE ‘%$value$%’
优化后
TABLE.COLUMN LIKE CONCAT(‘%’,CONCAT(value:VARCHAR,’%’))
或者
TABLE.COLUMN LIKE CONCAT(CONCAT(#value:VARCHAR#,‘%’),’%’)
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- ORACLE SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- Oracle SQL的优化
- ORACLE的 SQL优化
- Oracle SQL的优化
- ORACLE的 SQL优化 .
- HBase ORM框架GORA使用文档
- android的常见类(一)
- GoogleCpp风格指南 4)Google奇技
- MVC和MVP
- 小知识点
- oracle的SQL优化
- [置顶] 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
- android内核剖析学习笔记:AMS(ActivityManagerService)内部原理和工作机制
- android中的常见类(二)
- Mysql删除同一张表的子查询语句
- cpd
- 整数数据唯一(去重)排序
- swing常用组件
- 水滴微信平台bug