在Oracle中分析存储的函数
发布时间:2020-12-12 16:30:04 所属栏目:百科 来源:网络整理
导读:在Oracle11g中是否可以分析从SELECT … INTO …语句中的plsql代码中调用的存储函数? 对于分析,我使用DBMS_HPROF实用程序.在DBMSHP_FUNCTION_INFO表中运行分析后,我可以看到除SELECT … INTO中调用的函数之外的所有内容…. 在11g2中,我的HPROF结果包括被称为
在Oracle11g中是否可以分析从SELECT … INTO …语句中的plsql代码中调用的存储函数?
对于分析,我使用DBMS_HPROF实用程序.在DBMSHP_FUNCTION_INFO表中运行分析后,我可以看到除SELECT … INTO中调用的函数之外的所有内容…. 在11g2中,我的HPROF结果包括被称为包函数的行SELECT my_pkg.my_func(x) INTO y FROM dual; 现在,我没有看到每一行 – 通常只有SQL语句.例如,我在以下包中描述了“main_test”. ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL=0; CREATE OR REPLACE PACKAGE matt_t1 AS FUNCTION p (a NUMBER) RETURN NUMBER; PROCEDURE main_test; END matt_t1; CREATE OR REPLACE TYPE my_num_tab_type IS TABLE OF NUMBER; CREATE OR REPLACE PACKAGE BODY matt_t1 AS FUNCTION p (a NUMBER) RETURN NUMBER IS x NUMBER := 0; t my_num_tab_type; BEGIN t := new my_num_tab_type(); for i in 1..10000 loop x := ln (x+i); t.extend(); t(i) := x; END loop; SELECT SUM(column_value) INTO x FROM TABLE(t); RETURN x; END p; PROCEDURE main_test IS x NUMBER; BEGIN FOR i IN 1 .. 100 LOOP x := matt_t1.p (i); DBMS_OUTPUT.put_line (x); END LOOP; END main_test; END matt_t1; 在HPROF结果中,我看到了条目 SELECT SUM(column_value) INTO x FROM TABLE(t); 但不是,例如, x := ln (x+i); 如果我只是通过PL / SQL直接赋值,那么我将函数p称为SELECT INTO vs得到相同的结果.无论哪种方式,10,000个自然对数的所有时间都在HPROF条目下进行 FUNCTION p (a NUMBER) 如果我直接调用MATT_T1.P()的调用,我也会得到相同的结果. 因此,我认为HPROF可能对它可以包含哪些PL / SQL行有一些限制,但在我看来,调用方法(SELECT..INTO)与它无关. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |