ORACLE 性能优化 (初级版)
1.sql脚本
(1)DML指令
delete 命令
- 为加快删除速度,尽量使用truncate,而不使用delete。DELETE 需要查找每一行对每一行进行判断并删除,truncate是直接批量删除,
使用delete时进行删除时,只要没有commit,oracle会将被删除的数据,放在回滚段中,以便回滚时数据恢复;
而truncate,是隐式提交,不可以回滚,所以资源很少被占用,所以缩短了执行时间,加快了执行效率。 - 如果有可能删除或禁用索引之后再删除内容
当对表中的数据进行删除的时候,索引也要动态的维护,这样就降低了数据的维护速度。 - 使用merge来删除(数据量比较大的情况下
merge效率更快,特别大时二者可能没什么区别。)(delete直接跟在update后面)
INSERT INTO 命令
- 插入多条记录时,使用查询结果集批量插入,代替一行行的插入
- 对表插入数据时,删除掉索引或者使索引失效(实际并不怎么可行,因为会带来额外的
重新创建或启用、重新排序的工作)
当对表中的数据进行删除的时候,索引也要动态的维护,这样就降低了数据的维护速度。