[20130125]利用v$active_session_history视图解决数据库问题.txt

[20130125]利用v$active_session_history视图解决数据库问题.txt

在数据库出现性能问题的时候使用awr,ash,addm都是不错的选择,实际上直接查询v$active_session_history也能很快定位解决问题。
实际上如果查看v$active_session_history视图,结合一些视图可以获取许多信息。
举几个例子来说明:

1.确定那个对象有高的等待:
SELECT   a.current_obj#, o.object_name, o.object_type, a.event, SUM (a.wait_time + a.time_waited) total_wait_time
    FROM v$active_session_history a, dba_objects o
   WHERE a.sample_time BETWEEN SYSDATE - 30 / 1440 AND SYSDATE AND a.current_obj# = o.object_id
GROUP BY a.current_obj#, o.object_name, o.object_type, a.event
ORDER BY total_wait_time desc ;

2.看看一段时间主要是那些等待事件:
SELECT   a.event, SUM (a.wait_time + a.time_waited) total_wait_time
    FROM v$active_session_history a
   WHERE a.sample_time BETWEEN SYSDATE - 30 / 1440 AND SYSDATE
GROUP BY a.event
ORDER BY total_wait_time DESC;

3.看看那个回话有问题:
SELECT   s.SID, s.username, SUM (a.wait_time + a.time_waited) total_wait_time
    FROM v$active_session_history a, v$session s
   WHERE a.sample_time BETWEEN SYSDATE - 30 / 1440 AND SYSDATE AND a.session_id = s.SID
GROUP BY s.SID, s.username
ORDER BY total_wait_time DESC;
--当然这个只能查询最近的会准一点,回话退出就不行了。

4.看看那个sql语句有问题。
SELECT   a.user_id, d.username, s.sql_text, SUM (a.wait_time + a.time_waited) total_wait_time
    FROM v$active_session_history a, v$sqlarea s, dba_users d
   WHERE a.sample_time BETWEEN SYSDATE - 15 / 1440 AND SYSDATE AND a.sql_id = s.sql_id AND a.user_id = d.user_id
GROUP BY a.user_id, s.sql_text, d.username
order by  SUM (a.wait_time + a.time_waited) desc

-- 这里查询的是v$sqlarea视图。

同样你可以使用视图DBA_HIST_ACTIVE_SESS_HISTORY代替v$active_session_history查询历史的信息。

select * from dba_objects where wner='SYS' and object_name like 'DBA_HIST%' and object_type='VIEW';

利用这些视图定位许多信息问题。

时间: 2024-08-31 03:32:22

[20130125]利用v$active_session_history视图解决数据库问题.txt的相关文章

[20170623]利用传输表空间恢复数据库2.txt

[20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志. --//参考链接 : http://blog.itpub.net/267265/viewspace-2141166/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------------------

利用percona-xtrabackup快速搭建MySQL数据库主从复制

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1709183 应用场景: Linux服务器A运行MySQL服务,并开启了log-bin(log-bin = mysql-bin)和指定了server-id(server-id = 1); Linux服务器B也以与服务器A同样的方式(不同样也可以,参考下面的"注意")安装了MySQL服务,可开启log-bin

视图在数据库中的应用分析

视图|数据|数据库 视图技术现在几乎所有的关系型数据库都支持,其应用也十分广泛. 采用视图的优点 1.  让数据库结构实现逻辑上的可扩充性:当数据库系统的物理信息(主要指表结构.表数据)已经完成后,如果由于新的业务要求导致表数据的不够,这时就可以采用视图技术进行扩充,通过视图中强大的SQL来完成功能. 2.  软件开发及数据查询处理方便:采用视图可以简化数据库系统的内部结构及其关系图,因为物理表很多时候是以数据库范式原则分析建立的,尤其在数据冗余处理方面与实际业务会产生较大的分歧,采用视图可以将

解析SQL Server 视图、数据库快照_Mysql

简介数据库快照       数据库快照,正如其名称所示那样,是数据库在某一时间点的视图.是SQL Server在2005之后的版本引入的特性.快照的应用场景比较多,但快照设计最开始的目的是为了报表服务.比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点.快照还可以和镜像结合来达到读写分离的目的.下面我们来看什么是快照. 什么是快照     数据库快照是 SQL Server 数据库(源数据库)的只读静态视图.换句话说,快照可以理解为一个

如何利用C#代码获取SQLite数据库的元数据

Sqlite数据库,在很多场合已经用得比较多,由于我的代码生成工具的需要,需要把Sqlite的表.字段.视图等信息获取出来,以便实现各种数据库快速生成项目工程的操作.这里就需要利用C#获取Sqlite数据库的元数据了,和其他数据库一样. 为了获取Sqlite的数据库对象数据,我做了一个测试的例子来获取他的相关信息,其实它的元数据还是和Access的操作方式很接近.首先我们先通过Sqlite的数据库管理工具或者Visual Studio来打开创建一些表,如下所示. 首先我们先来看看通过C#代码获取

利用MS SQL实现异构数据库的分布式查询的t-sql代码

分布式|数据|数据库         /*利用MS SQL实现异构数据库的分布式查询的t-sql代码*/ exec sp_addlinkedserver  'MS_SQL','','SQLOLEDB','172.18.9.20'exec sp_addlinkedsrvlogin 'MS_SQL','false',null,'Sa','capec' /*创建一个sqlserver对sqlserver的数据库远程链接*/ exec sp_addlinkedserver 'ora', 'Oracle'

解决数据库中记录重复问题

解决|数据|数据库|问题|重复 解决数据库中记录重复问题 (By:aloxy) Jul 22, 11:19 --产品数据重复统计SELECT mc, userid, COUNT(mc) AS Expr1FROM chanpinGROUP BY mc, userid--将不重复的纪录插入新表newchanpinselect * into #Tmp1 from chanpingoselect min(ID) as autoID into #Tmp2 from #Tmp1 group by mc, u

在应用层通过spring特性解决数据库读写分离

在应用层通过spring特性解决数据库读写分离    如何配置mysql数据库的主从? 单机配置mysql主从:http://my.oschina.net/god/blog/496   常见的解决数据库读写分离有两种方案 1.应用层 http://neoremind.net/2011/06/spring实现数据库读写分离 目前的一些解决方案需要在程序中手动指定数据源,比较麻烦,后边我会通过AOP思想来解决这个问题.   2.中间件 mysql-proxy:http://hi.baidu.com/

SQL Server利用HashKey计算列解决宽字段查询的性能问题

SQL Server利用HashKey计算列解决宽字段查询的性能问题 主人翁        本文主人翁:MSSQL菜鸟和MSSQL老鸟. 问题提出        某年某月某日,某MSSQL菜鸟满脸愁容的跑到老鸟跟前,心灰意懒的对老鸟说"我最近遇到一个问题,很大的问题,对,非常大的问题".老鸟不急不慢的推了推2000度超级近视眼镜框,慢吞吞的说:"说来听听".        "我有一个100万数据量的表,有一个宽度为7500字段,不幸的是现在我需要根据这个字