Oracle执行exists优化,Oracle之sql语句优化

项目中尽管使用了orm映射,但Oracle系统的优化还是非常有价值的,这里从sql语句的角度对经常使用的语句做下总结。

1、from字段中的优化:

Oracle安照从右到左的顺序载入表数据,应该把能够排除数据最多的表放到后面(基础表)。

比方。在关联查询中。把课程表放到后面。成绩表放到前面。由于课程表数据一般比較少,关联的时候能够高速的过滤掉一些成绩数据。

2、where中的优化:

对能够过滤数据最多的,放到后面,原理也是Oracle运行从下到上(从右到左)的顺序。

3、使用列名替代*:

省去从字典表中解析的过程 :

Oracle运行sql语句过程:

在共享池中搜索sql语句是否已经存在

验证sql是否语法精确

运行数据字典验证表和列的定义

获取对象的分析锁。以便在语句的分析过程中对象的定义不会改变

检查用户是否具有对应的操作权限

确定语句最佳运行计划

将语句和运行方案保存到共享的sql区。

4、使用?參数形式:

尽量不要使用拼接字串的方式。由于带有?的參数形式会缓存分析结果。省去上面非常多步骤。

5、使用decode函数:

decode不会反复扫描同样记录或反复连接同样的表,降低表的扫描次数。

6、使用truncate替代delete:

delete:逐条删除。并保存回滚还原点。

DML(数据操作语言insert,update,delete,merge)

truncate不会保存回滚点,

你可能感兴趣的:(Oracle执行exists优化,Oracle之sql语句优化)