伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

【DB笔试面试571】在Oracle中,如何提高DML语句的效率?

来源:本站原创 浏览:115次 时间:2021-12-23


♣          题目         部分

在Oracle中,如何提高DML语句的效率?


     
♣          答案部分          



若是批量处理海量数据的话通常都是很复杂及缓慢的,方法也很多,但是通常的概念是:分批删除,逐次提交。下面介绍一下提高DML语句效率的常用方法。

DML语句

提高DML语句效率用方法

UPDATE

① 多字段更新使用一个查询。

② 将表修改为NOLOGGING模式。

③ 根据情况决定是否暂停索引,更新后恢复。避免在更新的过程中涉及到索引的维护。

④ 批量更新,每更新一些记录后及时进行提交动作,避免大量占用回滚段和临时表空间。

⑤ 可以创建一个临时的大的表空间用来应对这些更新动作。

⑥ 加大排序缓冲区。

⑦ 如果更新的数据量接近整个表,那么就不应该使用索引而应该采用全表扫描。

⑧ 如果服务器有多个CPU,那么可以采用PARELLEL Hint,可以大幅度地提高效率。

⑨ 建表的参数非常重要,对于更新非常频繁的表,建议加大PCTFREE的值,以保证数据块中有足够的空间用于UPDATE。

⑩ 通过快速游标更新法,并对ROWID进行排序更新,如下所示:

 1DECLARE
2  V_COUNTER NUMBER;
3BEGIN
4  V_COUNTER := 0;
5  FOR CUR IN (SELECT A.AREA_CODE, B.ROWID ROW_ID FROM TA A, TB B WHERE A.ID = B.ID ORDER BY B.ROWID ) LOOP
6    UPDATE TB SET AREA_CODE = CUR.AREA_CODE WHERE ROWID = CUR.ROW_ID;
7    V_COUNTER := V_COUNTER + 1;
8    IF (V_COUNTER >= 1000) THEN
9      COMMIT;
10      V_COUNTER := 0;
11    END IF;
12  END LOOP;
13  COMMIT;
14END;
         


⑪ 当需要更新的表是单个或者被更新的字段不需要关联其它表带过来中的数据(例如:外键约束),则选择标准的UPDATE语句,速度最快,稳定性最好,并返回影响条数。如果WHERE条件中的字段加上索引,那么更新效率就更高。但若需要关联表更新字段时,UPDATE的效率就非常差。此时可以采用MERGE且非关联形式高效完成表对表的UPDATE操作。

INSERT

① 将表修改为NOLOGGING模式。

② 暂停索引。

③ 以APPEND模式插入。

④ 加入PARALLEL,采用并行插入。

DELETE

① 利用FORALL完成。

② 利用ROWID或ROW_NUMBER() OVER()高效删除重复记录。

③ 将表修改为NOLOGGING模式。

 


以上这些方法都是抛砖引玉,数据库优化没有最好的方法,只有最合适的方法。

& 说明:

有关SQL优化的一些案例可以参考我的BLOG:http://blog.itpub.net/26736162/viewsp�γ�,�峺ace-1254942/、http://blog.itpub.net/26736162/viewspace-1244055/、http://blog.itpub.net/26736162/viewspace-1244050/、http://blog.itpub.net/26736162/viewspace-1244044/、http://blog.itpub.net/26736162/viewspace-1222431/、http://blog.itpub.net/26736162/viewspace-1222423/、http://blog.itpub.net/26736162/viewspace-1218671/、http://blog.itpub.net/26736162/viewspace-1209796/、http://blog.itpub.net/26736162/viewspace-1208814/、http://blog.itpub.net/26736162/viewspace-1684396/、http://blog.itpub.net/26736162/viewspace-2125815/。



本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。



     ---------------优质麦课------------

 详细内容可以添加麦老师微信或QQ私聊。



About Me:小麦苗      

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● QQ:646634621  QQ群:618766405

● 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

DBA宝典

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。

喜欢就点击“好看”吧



本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net