oracle 条件动态视图,Oracle 动态视图

V$SESSION,v$process

v$sqlarea,V$sql

v$open_cursor,v$db_object_cache

0.v$sqlarea是共享内存中的共享sq,也称父游标l,避免硬解析。V$sql是子游标。

存储过程中的sql也会在这两个视图中出现。有些语句没出现可能是被刷出去了,多执行几次就可能出现的。

1.查看正在运行的存储过程:

select name,locks,pins,v.*

from v$db_object_cache v

where locks > 0 and pins > 0 and type='PROCEDURE' and owner = 'HDC_DAG_HRB';

2.查询正在打开的游标:

a.OPEN_CURSOR参数,定义每个Session最大能够打开的游标数量。在init.ora文件中定义,可以通过

select * from v$parameter where name = 'open_cursors'查询。

b.V$OPEN_CURSOR,

在v$open_cursor里面我们可以看到当前打开的cursor和pga内cached cursor.。

c.

session_cached_cursor这个参数限制了在pga内session cursor cache list的长度:

show parameter session_cached_cursors;

我们来把session_cached_cursors修改成1

SQL>alter session set session_cached_cursors=1;

,来看看current open cursor(当前打开游标)和session cached cursor(会话缓存游标数)的数目

SQL> select sid,n.name,s.value  used   from

sys.v_$statname  n,

sys.v_$sesstat  s

where

n.name in ('opened cursors current', 'session cursor cache count') and

s.statistic# = n.statistic#

and sid=12;

SID                             NAME                                                                       USED

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

12                      opened cursors current                                                    1

12                     session cursor cache count                                            0

这两视图说明;

动态性能视图v$mystat,v$sesstat,v$statname学习

为了学习如何得sql产生的redo信息,在网上查询到结果得出需对v$mystat,v$sesstat,v$statname视图进行操作,现在心得写出如下:

1.v$mystat,v$sesstat是用来分别统计会话级别和自实例起动以来数据库各种统计信息的。

两个视图结构一致,只是统计数据不一致。

desc v$mystat;

名称                                                  是否为空? 类型

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

SID                                                             NUMBER

STATISTIC#                                                     NUMBER

VALUE                                                           NUMBER

SID表示会话编号,与v$session中SID相对应。

STATISTIC#  表示统计项

VALUE       表示统计项相关的值

v$mystat视图中只会有当前用户的会话信息,v$sesstat会有整个实例内所有会话信息。因此在v$sesstat中自然包括v&mystat的统计信息。

2.一般情况下v$mystat,v$sesstat会与v$statname一起配合使用。

SQL> desc v$statname;

Name       Type         Nullable Default Comments

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

STATISTIC# NUMBER       Y

NAME       VARCHAR2(64) Y

CLASS      NUMBER       Y

v$statname视图中STATISTIC#与v$mystat,v$sesstat中STATISTIC#字段是相关联的。而NAME则是对应的英文信息,比如说要查某条DML语句所产生的redo信息。可以这样写:

select value from v$mystat t,v$statname t1 where t.STATISTIC# = t1.STATISTIC# and t1.NAME = 'redo size'

其它信息也是如此,只需将t1.name换成相对应的英文名称即可。

select * from v$open_cursor where user_name = 'HDC_DAG_HRB'

3.获得正在运行的sql语句

select sid,pid,b.HASH_VALUE , --通过hash_value可以获得执行计划,        ROUND(TO_NUMBER(sysdate - a.PREV_EXEC_START) * 24 * 60 * 60) runtime,        sql_fulltext,        a.sql_id,        SCHEMANAME,        dbms_sqltune.extract_binds(b.bind_data) bind,        B.Cpu_Time,        STATUS,        B.SQL_TEXT   from V$SESSION a   left JOIN V$SQL B     ON A.SQL_ADDRESS = B.ADDRESS    AND A.SQL_HASH_VALUE = B.HASH_VALUE left join v$process  p on  a.PADDR=p.addr  where a.username is not null    and a.status = 'ACTIVE'  order by b.cpu_time desc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值