Oracle数据库特殊视图说明

我们在做项目的时候用到最多的就是我们系统中自己所设计的表,很少关注系统自带的一些很好用的视图,下面我就列出一些Oracle中可以用到的对于监控资源消耗的视图。

常用视图说明

v$sql、v$sqlarea、v$sqltext、v$session这几个就是我所要列举的视图

    v$sqlv$sqlarea差不多,记录共享sql区(share pool)中sql统计信息,如内存消耗、IO、排序操作、哈希编号等数据。不同之处在于v$sql为每一条sql保留一个条目,而v$sqlarea中根据sql_text进行group by,统计列进行sum(),通过version_count计算子指针的个数。

         Sql_text相同的sql语句在sql中意义可能完全不同,此时,v$sql会有这两条完全一样的sql各自的统计信息,而在v$sqlareasql_text相同的2个指针会合并,执行次数,DISK_READSBUFFER_GETS等统计信息会累加,这就是v$sqlarea的聚合作用

         v$sqltext中存储着完整的sql语言及其哈希码等。

         v$session主要用来确定会话相关信息,如通过SIDSERIAL来确定一个Session、会话拥有者用户名username、会话状态、会话由哪个客户端发起、正在执行什么sql(通过sql_addresssql_hash_valuesql_idsql_child_number确定,再借助v$sqltext就可以知道)、锁等待相关信息(如所在表、文件、块、被锁行)等。

        

select view_definition from v$fixed_view_definition whereview_name='GV$SQL';

select view_definition from v$fixed_view_definition where view_name='GV$SQLAREA';

select view_definition from v$fixed_view_definition where  view_name='GV$SQLTEXT';

        视图名为v$sql但该视图的源又是GV$sql,所以直接使用GV$SQL,其他两个也如此。

 

V$SQL视图可以显示在共享池重的所有sql语句

 

查询最近操作的Sql语句

select sql_text, last_load_time from v$sql

where last_load_time IS NOT NULL and sql_text like '%SELECT%' order by last_load_time desc;

涉及到的字段

v$sqlarea

sql_text: sql 语句的前1000个字符

sql_fulltext: sql语句的所有字符

sql_id:缓存在高速缓冲区中的sql父游标的唯一标识ID

sorts: 语句执行导致的排序次数

version_count:在缓存中以该语句为父语句的子游标总数

executions: 包含所有子游标在内该sql语句共执行次数

parse_calls:父游标下所有子游标解析调用次数

disk_reads: 该语句通过所有子游标导致的读磁盘次数

address:当前游标父句柄

hash_value: 该语句在library cache中的hash

v$sqltext

address: 当前游标父句柄

hash_value:该游标在library cache中唯一hash

高资源消耗sql

查看读硬盘多或占用内存可能多的sql

select sql_text,disk_reads,buffer_gets,parsing_scheme_name,executions

from v$sqlarea

order by disk_reads desc

单纯从v$sqlarea 中无法查出每个sql消耗的内存量,但可以借助磁盘读次数间接反映可能的消耗内存较大的sql语句,然后借助执行计划(v$sql_plan)具体查看。

查看执行次数多的sql

select sql_text,executions,parsing_schema_name

from v$sqlarea

order by executions desc;

查看排序多的sql

select sql_text,sorts,parsing_schema_name

from v$sqlarea

order by sorts desc;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值