近日,接触到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
第6章 存储优化:配置高效存储环境 / 181 6.1 i/o问题的表象与内涵 / 182 6.2 存储介质的基础配置 / 183 6.3 存储i/o能力探究 / 197 第7章 综合部署:oracle可靠性设置 / 201 7.1 数据库设置的综合考虑 /...
此外,该资源还提供了一些最佳实践,如如何选择适当的列存储对象、如何优化列存储查询等。如果你是一位Oracle数据库管理员或开发人员,这份培训ppt将会是你不可或缺的学习资料之一,它将帮助你更好地理解和应用In-...
Oracle 11gR2 RAC管理、维护与性能优化》从硬件和软件两个维度系统且全面地讲解了Oracle 11g R2 RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为构建最高可用的Oracle数据库...
2021大数据存储架构峰会实践资料合集,共35份。 Greenplum在HTAP场景下的优化与应用 Doris分析数据库产品介绍与实践 TDengine内核技术剖析 用 TiDB 构建实时应用 JuiceFS云原生时代的分布式文件系统 Apache ...
PostgreSQL 最佳性能优化实践授课PPT 386页,适合对PostgreSQL了解的朋友,当然你熟悉mysql或oracle也有参考价值!
Oceanstor90o特住与配置exe Ocean Stor N8500部署与管理,...统一存储最佳实践1- Oracle.exe 文件系统备份exe 虚拟磁带库TL6900部署与管理.exe 虚拟化存储网关vS6000T部署与管理.exe 主备容灾解决方案部署与容灾操作,exe
本书详细介绍了最新的监控、故障排除和优化的方法,取自真实世界的案例研究和最佳实践遍及全书,从书中可以学会如何找出和解决瓶颈问题、如何配置存储设备、如何有效运行查询以及如何开发无错误的SQL和PL/SQL代码。
Oracle存储过程性能分析案例 Oracle技术加油站:快速处理紧急性能问题的工具与经验 Oracle诊断性能问题时常用脚本工具 PostgreSQL日常工作分享 PostgreSQL实践分享 wls、was中间件故障基本分析介绍
全书精心组织Oracle 数据库初学者需要掌握的知识,循序渐进地介绍Oracle 数据库管理和应用系统开发的过程。 全书分为从零开始、构建环境、管理入门、数据利器、智能管理、运行维护、数据管理、安全管理、编程进阶、...
Oceanstor90o特住与配置exe Ocean Stor N8500部署与管理,...统一存储最佳实践1- Oracle.exe 文件系统备份exe 虚拟磁带库TL6900部署与管理.exe 虚拟化存储网关vS6000T部署与管理.exe 主备容灾解决方案部署与容灾操作,exe
Oceanstor90o特住与配置exe Ocean Stor N8500部署与管理,...统一存储最佳实践1- Oracle.exe 文件系统备份exe 虚拟磁带库TL6900部署与管理.exe 虚拟化存储网关vS6000T部署与管理.exe 主备容灾解决方案部署与容灾操作,exe
NewSQL数据库存储引擎优化 数据湖存储格式Hudi原理与实践 Spark在云原生环境的挑战和实践 开源数据编排系统Alluxio:原理与实践 数据湖存储的挑战与机遇 Presto在数据湖领域的机遇和挑战 新一代大数据调
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 体系结构...
统一存储最佳实践1-Oracle 统一存储系统NAS特性及应用.3 统一存储系统SAN特性及应用.1 统一存储系统SAN特性及应用.2 统一存储系统SAN特性及应用.3 统一存储系统故障处理 虚拟化存储网关VIS6000T部署与管理 ...