关闭
侧边栏

ASH新特性

Posted by dbtan on 四月 9th, 2010

ASH新特性:

如果说v$session_wait_history是一小步,那么ASH则是Oracle迈出根本变革的一大步。

从Oracle 10g开始,Oracle引入了ASH新特性,也就是活动session历史信息记录(Active Session History,ASH)ASH以v$session为基础,每秒钟采样一次,记录活动会话等待的事件。因为记录所有会话的活动是非常昂贵的,所以不活动的会话不会被采样,这一点从ASH的“A”上就可以看出。采样工作由Oracle 10g新引入的一个后台进程MMNL来完成。

是否启用ASH功能,受一个内部隐含参数控制:

sys@CCDB> @GetHidPar.sql
Enter value for par: ash_enable
... ...
<阅读全文>

新增v$session_wait_history视图

Posted by dbtan on 四月 9th, 2010

Oracle 10g的增强:

虽然v$session_wait记录的信息如此重要,但是这些重要的信息是随session而消逝的,如果我们希望获得数据库的历史状态及session的历史状态及session的历史等待信息等数据,是不可得的。

所以很多时候很难回答这样的问题:
·这个系统昨天是什么样子的?
·今天和昨天相比有什么不同?
·1个小时前的那次性能下滑是哪个用户引起的?
·是哪些事件使我们今天用了更多的时间来等待?
你也可能一次又一次地听到Oracle Support这样问:
·问题出现时系统是怎样的状况?
·问题出现时系统有哪些等待?
·你能否重现(Reproduce)问题以使我们判断?

很多这样
... ...
<阅读全文>

捕获相关SQL

Posted by dbtan on 四月 9th, 2010

捕获相关SQL:

确定这些进程因为数据访问产生了等待,可以考虑捕获这些SQL以发现问题。这里用到了以下脚本getsqlbysid.sql,该脚本通过已经session的sid,联合v$session、v$sqltext视图,获得相关session正在执行的完整SQL语句。

select sql_text
from v$sqltext a
where a.hash_value = (select sql_hash_value
                      from v$session b
                  &nb
... ...
<阅读全文>

从v$sqltext中追踪

Posted by dbtan on 四月 9th, 2010

从v$sqltext中追踪:

在数据库出现瓶颈时,通常可以从v$session_wait找到那些正在等待资源的Session,通过Session的sid,联合v$session和v$sqltext视图可以捕获这些Session正在执行的SQL语句。

数据库运行缓慢,转换为数据库语言就是数据库可能经历了等待,那么可以通过v$session_wait(从Oracle 10g,v$session视图可以取代v$session_wait的这一诊断功能)视图来入手。查询v$session_wait获取各进程等待事件:

winks@CCDB> select sid,event,p1,p1text from v$session_wait ;
       SID EVENT          &n
... ...
<阅读全文>

Oracle 11g实时SQL监控

Posted by dbtan on 四月 9th, 2010

Oracle 11g实时SQL监控:

前面提到,在Oracle Database 11g中,v$session视图增加了一些新的字段,这其中包括SQL_EXEC_STARTSQL_EXEC_ID,这两个字段实际上代表了Oracle 11g的一个新特性:实时的SQL监控(Real Time SQL Monitoring)

在Oracle 11g之前的版本,长时间运行的SQL可以通过监控v$session_longops来观察,当某个操作执行时间超过6秒,就会被记录在v$session_longops中,通常可以监控到全表扫描、全索引扫描、哈希联接、并行查询等操作;而在Oracle 11g中,当SQL并行执行时,会立即被实时监控到,或者当SQL单进程运行时,如果消
... ...
<阅读全文>


Copyright © 2009 - 2018 https://www.dbtan.com. All rights reserved.    京ICP备13006977号-1