ITPub博客

首页 > 数据库 > Oracle > [20190125]简单快速查看那些sql语句正在执行.txt

[20190125]简单快速查看那些sql语句正在执行.txt

原创 Oracle 作者:lfree 时间:2019-01-25 16:27:16 0 删除 编辑

[20190125]简单快速查看那些sql语句正在执行.txt


--//跟别人学了一招,很简单,直接查询v$sqlarea条件users_executing > 0就可以了.


select * from v$sqlarea where users_executing > 0;


--//简单测试看看:


1.环境:

SCOTT@book> @ ver1

PORT_STRING                    VERSION        BANNER

------------------------------ -------------- --------------------------------------------------------------------------------

x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production


2.执行如下:

select count(*) from dba_objects,dba_source;

...


3.打开另外会话执行:

SYS@book> select sql_id,sql_text from v$sqlarea where users_executing > 0;

SQL_ID        SQL_TEXT

------------- ----------------------------------------------------------------

abgy71uhtj9v6 select sql_id,sql_text from v$sqlarea where users_executing > 0

g36a0g53bgmtd select count(*) from dba_objects,dba_source


SYS@book> select sql_id,sql_text,ELAPSED_TIME,users_executing from v$sqlarea where users_executing > 0;

SQL_ID        SQL_TEXT                                                     ELAPSED_TIME USERS_EXECUTING

------------- ------------------------------------------------------------ ------------ ---------------

6vmp6a1ju93mu select sql_id,sql_text,ELAPSED_TIME,users_executing from v$s        63113               1

              qlarea where users_executing > 0

g36a0g53bgmtd select count(*) from dba_objects,dba_source                     229713149               1


--//ELAPSED_TIME一直在增加.

--//打开2个会话同时执行如下:

SCOTT@book> select count(*) from emp,emp,emp,emp,emp,emp,emp;


  COUNT(*)

----------

 105413504


--//打开另外会话执行:

SYS@book> select sql_id,sql_text,ELAPSED_TIME,users_executing from v$sqlarea where users_executing > 0 

          and sql_text not like 'select sql_id,sql_text,ELAPSED_TIME,users_executing%';

SQL_ID        SQL_TEXT                                                     ELAPSED_TIME USERS_EXECUTING

------------- ------------------------------------------------------------ ------------ ---------------

gau6fcukuvcz7 select count(*) from emp,emp,emp,emp,emp,emp,emp                 28563690               2


SYS@book> select sql_id,sql_text,ELAPSED_TIME,users_executing from v$sqlarea where users_executing > 0 

          and sql_text not like 'select sql_id,sql_text,ELAPSED_TIME,users_executing%';

SQL_ID        SQL_TEXT                                                     ELAPSED_TIME USERS_EXECUTING

------------- ------------------------------------------------------------ ------------ ---------------

gau6fcukuvcz7 select count(*) from emp,emp,emp,emp,emp,emp,emp                 30157961               1


--//不失为一个快速查看的方法,不过如果数据库很慢的情况下,查询v$sqlarea是否很更慢.


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2564775/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2854
  • 访问量
    6642050