oracle关于提高SQL执行效率的建议
复制代码代码如下所示:当多个表包含在from子句中时,选择最少条目的表作为基表。
将分析子句过滤为自下而上的命令。
> > Oracle将转换为列名*
> >删除将在回滚段存储可恢复信息,并尝试截断
-->提交将被释放:1.rollback段
2。通过程序语句获得的锁。
3.redo日志缓冲区
每个列的别名前缀可以减少分析时间。
当Oracle解析SQL语句时,小写字母将被转换为大写。
>在列索引中使用不执行全表扫描停止使用索引
>在操作的列索引中将转到执行一个完整的表扫描停止使用索引。
使用> =相反--> >。
> WHERE子句=和+!| | 'symbols将损伤指标
中的效率非常低,子句中会执行内部排序和合并。
>存在查询比较快
对于两个>索引列,联合的效率高于或
> NULL将破坏索引。
>不同、联合、减号、交集、按序等都有排序功能,这将消耗资源。
使用第一个索引列尝试多个索引列
试着用工会取代工会——>
(to_number)-->不使用这些功能来改变索引的列式。
字符类型索引列-->写:col = COL = 123 '123'instead,后者将决定to_number(emp_type)= 123
使用适当关键字进行:在检索结果集的所有记录之后,筛选器在使用时不能使用
>索引还需要对索引进行维护、插入、删除、更新和I/O,以便生成更多的索引。
必须重建索引> >更改索引重建{在线}