`
king_tt
  • 浏览: 2110183 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle存储过程优化小实践

 
阅读更多

近日,接触到ORACLE 存储过程的优化问题,业务过程非常简单。该存储过程的主要DML操作就是UPDATE,需要根据某个条件对数据表的某个字段进行更新,其中使用到游标。之后写了个测试的例子,以下具体介绍。

  测试环境:

  OS:WINDOWS XP +Intel(R) 2CPU(1.60GHz) + 1GB

  数据库: ORACLE10g

  测试数据:10万行

  存储过程代码:

CREATEORREPLACEPROCEDUREprc_update_0
  IS
  TYPEtab_idISTABLEOFROWID;
  CURSORcur_skyISSELECTROWIDFROMTBL_USER_AUTHWHEREIMSIISNOTNULL;
  BEGIN
  OPENcur_sky;
  FETCHcur_skyBULKCOLLECTINTOv_rowid;
  FORALLiIN1..v_rowid.COUNT
  UPDATETBL_USER_AUTHSETMPXYZDATAE='nsofsofmslfd'WHEREROWID=v_rowid(i);
  COMMIT;
  CLOSEcur_sky;
  EXCEPTION
  WHENothersTHEN
  ROLLBACK;
  DBMS_OUTPUT.PUT_LINE('Updatefailed!');
  END;
  /
  CREATEORREPLACEPROCEDUREprc_update_1
  IS
  v_rowidROWID;
  CURSORcur_skyISSELECTROWIDFROMTBL_USER_AUTHWHEREIMSIISNOTNULL;
  BEGIN
  OPENcur_sky;
  LOOP
  FETCHcur_skyINTOv_rowid;
  EXITWHENcur_sky%NOTFOUND;
  UPDATETBL_USER_AUTHSETMPXYZDATAE='nsofsofmslfd'WHEREROWID=v_rowid;
  ENDLOOP;
  COMMIT;
  CLOSEcur_sky;
  EXCEPTION
  WHENothersTHEN
  ROLLBACK;
  DBMS_OUTPUT.PUT_LINE('Updatefailed!');
  END;
  /
  测试结果:

  运行次数

  时间(s) 1 2 3 4 5 6 7 8 9 10 avg

  prc_update_0 5 4 4 7 4 4 8 8 4 8 5.6

  prc_update_1 9 11 9 10 13 9 9 9 11 9 9.9

  从以上结果可以看出:

  对于游标的循环,BULK COLLECT对性能的改善有很大的提高。实验数据只有10万行,当数据量达到千万级的时候,运行时间的差距就非常明显。

分享到:
评论

相关推荐

    Oracle数据库中地形数据存储的优化实践.pdf

    Oracle数据库中地形数据存储的优化实践.pdf

    Oracle数据库性能优化的艺术 (文平) 高清PDF扫描版

    第6章 存储优化:配置高效存储环境 / 181 6.1 i/o问题的表象与内涵 / 182 6.2 存储介质的基础配置 / 183 6.3 存储i/o能力探究 / 197 第7章 综合部署:oracle可靠性设置 / 201 7.1 数据库设置的综合考虑 /...

    甲骨文列式存储oracle in memory特性最佳应用实践培训ppt

    此外,该资源还提供了一些最佳实践,如如何选择适当的列存储对象、如何优化列存储查询等。如果你是一位Oracle数据库管理员或开发人员,这份培训ppt将会是你不可或缺的学习资料之一,它将帮助你更好地理解和应用In-...

    构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化

    Oracle 11gR2 RAC管理、维护与性能优化》从硬件和软件两个维度系统且全面地讲解了Oracle 11g R2 RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为构建最高可用的Oracle数据库...

    2021大数据存储架构峰会实践资料合集(35份).zip

    2021大数据存储架构峰会实践资料合集,共35份。 Greenplum在HTAP场景下的优化与应用 Doris分析数据库产品介绍与实践 TDengine内核技术剖析 用 TiDB 构建实时应用 JuiceFS云原生时代的分布式文件系统 Apache ...

    PostgreSQL 最佳性能优化实践授课PPT 386页

    PostgreSQL 最佳性能优化实践授课PPT 386页,适合对PostgreSQL了解的朋友,当然你熟悉mysql或oracle也有参考价值!

    HCIE存储视频下.rar

    Oceanstor90o特住与配置exe Ocean Stor N8500部署与管理,...统一存储最佳实践1- Oracle.exe 文件系统备份exe 虚拟磁带库TL6900部署与管理.exe 虚拟化存储网关vS6000T部署与管理.exe 主备容灾解决方案部署与容灾操作,exe

    Oracle Database 11gR2性能调整与优化

    本书详细介绍了最新的监控、故障排除和优化的方法,取自真实世界的案例研究和最佳实践遍及全书,从书中可以学会如何找出和解决瓶颈问题、如何配置存储设备、如何有效运行查询以及如何开发无错误的SQL和PL/SQL代码。

    2021 云和恩墨大讲堂PPT汇总(50份).zip

    Oracle存储过程性能分析案例 Oracle技术加油站:快速处理紧急性能问题的工具与经验 Oracle诊断性能问题时常用脚本工具 PostgreSQL日常工作分享 PostgreSQL实践分享 wls、was中间件故障基本分析介绍

    Oracle 9i中文版基础培训教程

    全书精心组织Oracle 数据库初学者需要掌握的知识,循序渐进地介绍Oracle 数据库管理和应用系统开发的过程。 全书分为从零开始、构建环境、管理入门、数据利器、智能管理、运行维护、数据管理、安全管理、编程进阶、...

    HCIE存储视频中.rar

    Oceanstor90o特住与配置exe Ocean Stor N8500部署与管理,...统一存储最佳实践1- Oracle.exe 文件系统备份exe 虚拟磁带库TL6900部署与管理.exe 虚拟化存储网关vS6000T部署与管理.exe 主备容灾解决方案部署与容灾操作,exe

    HCIE存储视频上.rar

    Oceanstor90o特住与配置exe Ocean Stor N8500部署与管理,...统一存储最佳实践1- Oracle.exe 文件系统备份exe 虚拟磁带库TL6900部署与管理.exe 虚拟化存储网关vS6000T部署与管理.exe 主备容灾解决方案部署与容灾操作,exe

    2021大数据存储架构峰会 共37份

    NewSQL数据库存储引擎优化 数据湖存储格式Hudi原理与实践 Spark在云原生环境的挑战和实践 开源数据编排系统Alluxio:原理与实践 数据湖存储的挑战与机遇 Presto在数据湖领域的机遇和挑战 新一代大数据调

    Oracle Database 11g初学者指南--详细书签版

    5.7 如何创建存储过程以及创建存储过程的原因 146 5.8 函数的创建和使用 149 5.9 调用PL/SQL程序 151 5.10 本章测验 152 第6章 数据库管理员 153 6.1 了解DBA的工作 154 6.2 执行日常操作 154 6.2.1 体系结构...

    华为HCIE-Storage培训视频教程【共32集】.rar

    统一存储最佳实践1-Oracle 统一存储系统NAS特性及应用.3 统一存储系统SAN特性及应用.1 统一存储系统SAN特性及应用.2 统一存储系统SAN特性及应用.3 统一存储系统故障处理 虚拟化存储网关VIS6000T部署与管理 ...

Global site tag (gtag.js) - Google Analytics