canway01 发表于 2016-12-30 14:12:06

Oracle用户当前操作以及使用资源情况

很多时候数据库在生产过程中,会有大量的会话在运行。那么每个会话所执行的SQL语句,我们也可以通过v$SESSION、v$SQLTEXT、v$SESS_IO结合来分析。当DBA试图确定某一时刻系统中发生着什么时候,相关视图的运用极为重要。【正文】以下给大家讲解一下如何检查Oracle用户当前操作以及使用资源情况。一   模拟用户操作并观察其使用资源情况1.1   测试环境:lOracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionlOracle 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 a5SQL> col sql_text format a20SQL> select a.sid, a.username, s.sql_text2from v$session a, v$sqltext s3where a.sql_address = s.address4and a.sql_hash_value = s.hash_value and username is not null5order 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,2b.physical_reads, b.block_changes, b.consistent_changes3from v$session a, v$sess_io b4where a.sid = b.sid and username is not null5order by a.username; USERN BLOCK_GETS CONSISTENT_GETS PHYSICAL_READS BLOCK_CHANGES CONSISTENT_CHANGES----- ---------- --------------- -------------- ------------- ------------------SCOTT      20144         14483         1064         15845               19SYS            0            1229             29             0                  0SYS            0               3            0             0                  0 1.4      总结通过查询V$SESSION、V$SQL_TEXT和V$SESS_IO可以发现有问题的用户,并可发现在给定的时间点上他们正在执行着什么操作。
本文转自泛IT职业发展平台——学领未来http://www.learnfuture.com

晚饭有点咸 发表于 2017-1-5 16:27:13

学习学习
页: [1]
查看完整版本: Oracle用户当前操作以及使用资源情况