问题描述
嗨-我们的开发人员有一个程序包,他们正在开始运行...端块。他们告诉我们,这个街区似乎运行了很长时间。这是唯一在数据库中运行并使用超过90% cpu的东西。我们运行了AWR和ASH报告,但他们只告诉我们这个街区是我们已经知道的最重要的事件。我们希望获得更多信息,因为包中的哪一行正在运行很长时间。有办法获取这些信息吗?
谢谢。
谢谢。
专家解答
一个攻击计划可能是
a) 查看v $ session.sql_id-查看它运行的确切SQL
b) 查询v $ sql的sql_id,它将向您显示它起源于块中的位置。
我博客上的一个完整例子
https://connormcdonald.wordpress.com/2016/01/20/problematic-sql-plsql-is-your-friend/
或者,获取包并向dbms_application_info添加一些调用,例如
dbms_application_info对事务没有影响,而且速度非常快
所以我的笔记本电脑每秒大约1,000,000个电话
a) 查看v $ session.sql_id-查看它运行的确切SQL
b) 查询v $ sql的sql_id,它将向您显示它起源于块中的位置。
我博客上的一个完整例子
https://connormcdonald.wordpress.com/2016/01/20/problematic-sql-plsql-is-your-friend/
或者,获取包并向dbms_application_info添加一些调用,例如
SQL> create or replace
2 procedure P is
3 begin
4 dbms_application_info.set_action('Start');
5
6 -- simulate a 5 second activity
7 dbms_lock.sleep(5);
8
9 dbms_application_info.set_action('Step 2');
10
11 -- simulate a 5 second activity
12 dbms_lock.sleep(5);
13
14 dbms_application_info.set_action('Step 2');
15
16 -- simulate a 5 second activity
17 dbms_lock.sleep(5);
18
19 dbms_application_info.set_action('Step 2');
20
21 -- simulate a 5 second activity
22 dbms_lock.sleep(5);
23 end;
24 /
Procedure created.
SQL>
SQL> exec P
[running]
--
-- then from another session I can see its status
--
SQL> select action
2 from v$session
3 where status = 'ACTIVE'
4 and username = 'MCDONAC';
ACTION
-------------------------------------------------
SQL>
SQL> /
ACTION
-------------------------------------------------
Start
SQL> /
ACTION
-------------------------------------------------
Step 2
SQL> /
ACTION
-------------------------------------------------
Step 3
dbms_application_info对事务没有影响,而且速度非常快
SQL> set timing on
SQL> begin
2 for i in 1 .. 1000000 loop
3 dbms_application_info.set_action('Step 2');
4 end loop;
5 end;
6 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.02
所以我的笔记本电脑每秒大约1,000,000个电话
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




