Oracle LOBs性能优化与设计指南
1. 临时LOB创建导致的性能问题
在开发过程中,我们可能会遇到临时LOB(Large Object)创建影响性能的情况。下面通过具体的示例来分析这个问题。
1.1 问题描述
有两个存储过程 RUNLOB() 和 LOB() ,当调用 RUNLOB() 时,根据参数 createlob 的不同,执行时间有显著差异:
- 当 createlob=FALSE 时,临时LOB仅在 RUNLOB() 中创建,执行时间不到1秒。
- 当 createlob=TRUE 时,临时LOB在 RUNLOB() 和 LOB() 中都创建,执行时间约为30秒,且与循环次数成正比。
以下是示例代码:
CREATE OR REPLACE PROCEDURE lob(createlob BOOLEAN)
IS
doc CLOB;
BEGIN
IF createlob THEN
DBMS_LOB.CREATETEMPORARY(doc, TRUE);
DBMS_LOB.FREETEMPORARY(doc);
END IF;
END;
/
CREATE OR REPLACE PROCEDURE RUNLOB(createlob BOOL
超级会员免费看
订阅专栏 解锁全文
1040

被折叠的 条评论
为什么被折叠?



