问题描述
我们正在进行性能调整,下面的程序需要时间,请指导我们进一步调整或者我们可以编写任何其他方法来提高性能,
CREATE OR REPLACE TYPE "RECO_FE" FORCE AS OBJECT ( o_o_id VARCHAR2(18 CHAR), o_gl_no VARCHAR2(35 CHAR), o_p_key VARCHAR2(5 CHAR), o_p_name VARCHAR2(35 CHAR), o_c_b_sum NUMBER(18,3), o_d_b_sum NUMBER(18,3), o_o_b_sum NUMBER(18,3), o_c_sum NUMBER(18,3), o_d_sum NUMBER(18,3), o_de_sum NUMBER(18,3) ); / CREATE OR REPLACE TYPE "RECO_FI_COL" FORCE AS TABLE OF RECO_FE; / CREATE OR REPLACE PROCEDURE TA_RE_FILE ( pi_id IN VARCHAR2, pi_no IN NUMBER, pi_reco_coll OUT RECO_FI_COL ) IS V_OBJ_RECONCI RECO_FI_COL; V_OBJ_RECO_COLL RECO_FI_COL:= RECO_FI_COL(); BEGIN SELECT RECO_FE(EX_TA_O_ID,TA_g_AC_CRDT, TA_pr_key, TA_pr_na, SUM(TA_CR_BA_LOC),NULL, NULL, NULL, NULL, NULL)BULK COLLECT INTO V_OBJ_RECONCI FROM TA_no_AC WHERE FK_TARB_BANK_REPORT_ID=pi_no AND EX_TA_O_ID=pi_id AND TA_g_AC_CRDT IS NOT NULL GROUP BY EX_TA_O_ID, TA_g_AC_CRDT, TA_pr_key, TA_pr_na; V_OBJ_RECO_COLL := V_OBJ_RECO_COLL MULTISET UNION V_OBJ_RECONCI; SELECT RECO_FE(EX_TA_O_ID,TANA_GL_ACCT_DBT, TA_pr_key, TA_pr_na,NULL, SUM(TA_DE_BA_LOC), NULL, NULL, NULL, NULL) BULK COLLECT INTO V_OBJ_RECONCI FROM TA_no_AC WHERE FK_TARB_BANK_REPORT_ID=pi_no AND EX_TA_O_ID=pi_id AND TANA_GL_ACCT_DBT IS NOT NULL GROUP BY EX_TA_O_ID, TANA_GL_ACCT_DBT, TA_pr_key, TA_pr_na; V_OBJ_RECO_COLL := V_OBJ_RECO_COLL MULTISET UNION V_OBJ_RECONCI; SELECT RECO_FE(EX_TA_O_ID, TANA_GL_ACCT_OVERDRFT,TA_pr_key, TA_pr_na, NULL,NULL, SUM(TA_OVE_BAL_LOC), NULL, NULL, NULL)BULK COLLECT INTO V_OBJ_RECONCI FROM TA_no_AC WHERE FK_TARB_BANK_REPORT_ID=pi_no AND EX_TA_O_ID=pi_id AND TANA_GL_ACCT_OVERDRFT IS NOT NULL GROUP BY EX_TA_O_ID, TANA_GL_ACCT_OVERDRFT, TA_pr_key, TA_pr_na; V_OBJ_RECO_COLL := V_OBJ_RECO_COLL MULTISET UNION V_OBJ_RECONCI; pi_reco_coll := V_OBJ_RECO_COLL; END;复制
专家解答
你已经几乎相同的查询运行了三次。然后在PL/SQL中统一结果。
你不能有一个SQL语句将这些合并在一起吗?
为了让我们提供更有意义的帮助,我们需要查看具体发生了什么以及需要多长时间的详细信息。即执行 (不解释!) 您的SQL计划,PL/SQL的运行时间等。
要获取计划,请跟踪您的会话并运行您的代码。然后解析跟踪文件。您可以在以下位置找到有关如何执行此操作的说明:
https://blogs.oracle.com/sql/how-to-create-an-execution-plan#tkprof
可能还值得对PL/SQL进行分析,以查看这些多集联合是否需要花费时间。请在以下位置阅读:
https://oracle-base.com/articles/11g/plsql-hierarchical-profiler-11gr1
你不能有一个SQL语句将这些合并在一起吗?
为了让我们提供更有意义的帮助,我们需要查看具体发生了什么以及需要多长时间的详细信息。即执行 (不解释!) 您的SQL计划,PL/SQL的运行时间等。
要获取计划,请跟踪您的会话并运行您的代码。然后解析跟踪文件。您可以在以下位置找到有关如何执行此操作的说明:
https://blogs.oracle.com/sql/how-to-create-an-execution-plan#tkprof
可能还值得对PL/SQL进行分析,以查看这些多集联合是否需要花费时间。请在以下位置阅读:
https://oracle-base.com/articles/11g/plsql-hierarchical-profiler-11gr1
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
593次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
558次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
480次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
471次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
457次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
430次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
429次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
414次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
357次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
355次阅读
2025-04-15 14:48:05