设为首页收藏本站language 语言切换
查看: 1328|回复: 1
收起左侧

[分享] Oracle用户当前操作以及使用资源情况

[复制链接]
发表于 2016-12-30 14:12:06 | 显示全部楼层 |阅读模式
很多时候数据库在生产过程中,会有大量的会话在运行。那么每个会话所执行的SQL语句,我们也可以通过v$SESSION、v$SQLTEXT、v$SESS_IO结合来分析。当DBA试图确定某一时刻系统中发生着什么时候,相关视图的运用极为重要。
【正文】
以下给大家讲解一下如何检查Oracle用户当前操作以及使用资源情况。
一   模拟用户操作并观察其使用资源情况1.1     测试环境:

l  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

l  Oracle Linux Server release 6.4。
1.2    模拟用户插入数据并通过v$session/v$sqltext结合查看。
当前通过scott用户向t2表插入mytest表的10万条数据:
SQL> insert into t2 select * from mytest;
100000 rows created.
用DBA用户通过以下命令进行查看:
SQL> col username format a5
SQL> col sql_text format a20
SQL> select a.sid, a.username, s.sql_text
  2  from v$session a, v$sqltext s
  3  where a.sql_address = s.address
  4  and a.sql_hash_value = s.hash_value and username is not null
  5  order by a.username, a.sid, s.piece;
       SID USERN SQL_TEXT
---------- ----- --------------------
        49 SCOTT insert into t2 selec
                 t * from mytest
        43 SYS   select a.sid, a.user
                 name, s.sql_text fro
                 m v$session a, v$sql
                 text
        43 SYS    s where a.sql_addre
                 ss = s.address and a
                 .sql_hash_value = s.
       SID USERN SQL_TEXT
---------- ----- --------------------
                 hash
        43 SYS   _value and username
                 is not null order by
                  a.username, a.sid,
                 s.pi
        43 SYS   ece
通过该语句:我们可以看到当前SCOTT正在运行的SQL_TEXT语句为:
insert into t2 select * from mytest;
1.3      查看用户使用资源情况:
为了查看每个用户使用资源情况,可以通过以下语句查询,该语句目标是为了强调每个会话中的物理磁盘命中次数和内存命中次数,这就非常容易确认哪些用户正在运行着大量的物理磁盘读和内存读。
SQL> select a.username, b.block_gets, b.consistent_gets,
  2  b.physical_reads, b.block_changes, b.consistent_changes
  3  from v$session a, v$sess_io b
  4  where a.sid = b.sid and username is not null
  5  order by a.username;
USERN BLOCK_GETS CONSISTENT_GETS PHYSICAL_READS BLOCK_CHANGES CONSISTENT_CHANGES
----- ---------- --------------- -------------- ------------- ------------------
SCOTT      20144           14483           1064         15845                 19
SYS            0            1229             29             0                  0
SYS            0               3              0             0                  0
1.4      总结
通过查询V$SESSION、V$SQL_TEXT和V$SESS_IO可以发现有问题的用户,并可发现在给定的时间点上他们正在执行着什么操作。

本文转自泛IT职业发展平台——学领未来http://www.learnfuture.com

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-26 21:13 , Processed in 0.077875 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表