oracle一视图性能问题

oracle一些性能视图的解释

--关于是否收集

timed_statistics参数:用于决定是否收集相关的时间参数,true为收集。如果该参数设为false,则等待事件相关视图也就无法收集到数据。
SQL> SHOW PARAMETER timed_statistics;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
timed_statistics                     boolean     TRUE

如果statistics_level设置为TYPICAL或ALL,那么timed_statistics该参数为true;如果statistics_level设置为BASIC,那么timed_statistics该参数为false。
SQL> SHOW PARAMETER statistics_level
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
statistics_level                     string      TYPICAL

一、v$system_event视图介绍
1.字段说明
DESC v$system_event
Name              Type         
----------------- ------------
EVENT             VARCHAR2(64)  --等待的事件                      
TOTAL_WAITS       NUMBER        --总等待次数                          
TOTAL_TIMEOUTS    NUMBER        --等待超时次数                        
TIME_WAITED       NUMBER        --总等待时间(时间毫秒,1/100秒)                        
AVERAGE_WAIT      NUMBER        --平均等待时间(总等待时间/总等待次数)                        
TIME_WAITED_MICRO NUMBER        --总等待时间(时间微秒,1/1000000秒)                           
EVENT_ID          NUMBER        --标识等待事件id                        
WAIT_CLASS_ID     NUMBER        --标识等待事件类型id                       
WAIT_CLASS#       NUMBER        --该等待类型的数量                       
WAIT_CLASS        VARCHAR2(64)  --等待类型名称

2.等待事件类型(WAIT_CLASS)
SELECT DISTINCT wait_class FROM v$system_event;--或直接查看v$system_wait_class视图
WAIT_CLASS
-------------
Concurrency --等待用于锁定的数据库资源,如闩
System I/O  --后台进程I/O的等待,包括db file parallel write事件的数据库写程序后台进程(DBWR)等待。还包括与归档有关的等待和重做日志读和写等待
User I/O    --包括db file sequential read和db file scattered read事件
Configuration --如checkpoint completed等待事件
Other         --杂项等待
Application  --由应用代码导致的等待
Idle      --空闲等待事件表示在会话不活动时发生的等待,如 “SQL*Net message from client”等待事件
Commit    --由单个等待事件log file sync组成,它是一个由数据库中的提交导致的等待
Network   --网络传递消息过程中的发生等待

log file sync(日志文件同步): log file sync 等待时间和事务中指(提交或回滚)相关;
                             当进程在log file sync事件上花费大量时间时,这通常表明过多的提交或短事务。
                             
SELECT event, time_waited, average_wait,total_waits,f.WAIT_CLASS_ID,f.WAIT_CLASS#,f.WAIT_CLASS
  FROM v$system_event f
WHERE wait_class NOT IN (‘Idle‘)
ORDER BY time_waited DESC;

二、v$system_wait_class视图
1.视图字段说明
SQL> DESC v$system_wait_class  --10g新增
Name          Type         
------------- ------------
WAIT_CLASS_ID NUMBER        --等待类型id                       
WAIT_CLASS#   NUMBER        --该等待类型的数量                        
WAIT_CLASS    VARCHAR2(64)  --等待类型名称                        
TOTAL_WAITS   NUMBER        --该等待类型事件发生时所等待的时间                       
TIME_WAITED   NUMBER        --所有会话用于等待的时间

2.v$system_wait_class视图和v$system_event视图比较
v$system_wait_class视图是10g新增的,该视图是对类型等待时间的统计。v$system_event视图可以与v$system_wait_class视图结合查看。
v$system_wait_class视图和v$system_event视图的来源不同,可用v$fixed_view_definition视图查看视图的具体定义,如下所示:
SELECT * FROM v$fixed_view_definition   WHERE view_name=‘V$SYSTEM_EVENT‘;
SELECT * FROM v$fixed_view_definition   WHERE view_name=‘GV$SYSTEM_EVENT‘;
SELECT * FROM v$fixed_view_definition   WHERE view_name=‘V$SYSTEM_WAIT_CLASS‘;
SELECT * FROM v$fixed_view_definition   WHERE view_name=‘GV$SYSTEM_WAIT_CLASS‘;

三、v$session_event视图
1.字段说明
SQL> DESC v$session_event
Name              Type         
----------------- ------------ 
SID               NUMBER        --会话id                           
EVENT             VARCHAR2(64)  --等待事件                        
TOTAL_WAITS       NUMBER        --该会话等待次数                        
TOTAL_TIMEOUTS    NUMBER        --该会话等待超时次数                        
TIME_WAITED       NUMBER        --该会话总等待时间(时间毫秒,1/100秒)                           
AVERAGE_WAIT      NUMBER        --该会话平均等待时间(总等待时间/总等待次数)                        
MAX_WAIT          NUMBER        --该会话等待时间最大值                     
TIME_WAITED_MICRO NUMBER        --该会话总等待时间(时间微秒,1/1000000秒)                         
EVENT_ID          NUMBER        --事件ID                        
WAIT_CLASS_ID     NUMBER        --等待类型ID                        
WAIT_CLASS#       NUMBER        --该等待类型的数量                        
WAIT_CLASS        VARCHAR2(64)  --等待类型名称

2.v$session_event视图与v$system_event视图比较
v$session_event视图:会话级的统计
v$system_event视图:系统级的统计

四、v$session_wait_class视图
与v$system_wait_class相比多了sid和serial#字段,v$session_wait_class视图表示某一会话的等待时间。

五、v$session_wait视图
1.字段说明
SQL> DESC v$session_wait;
Name            Type        
--------------- ------------ 
SID             NUMBER         --会话id                       
SEQ#            NUMBER         --标识当前或最新的等待序列号                       
EVENT           VARCHAR2(64)   --当前等待事件或最后一次等待事件                      
P1TEXT          VARCHAR2(64)   --第一个等待参数的描述                       
P1              NUMBER         --第一个等待参数(十进制)                       
P1RAW           RAW(4)         --第一个等待参数(十六进制)                       
P2TEXT          VARCHAR2(64)   --第二个等待参数的描述                        
P2              NUMBER         --第二个等待参数(十进制)                       
P2RAW           RAW(4)         --第二个等待参数(十六进制)                       
P3TEXT          VARCHAR2(64)   --第三个等待参数的描述                       
P3              NUMBER         --第三个等待参数(十进制)                       
P3RAW           RAW(4)         --第三个等待参数(十六进制)                        
WAIT_CLASS_ID   NUMBER         --等待事件类型ID                       
WAIT_CLASS#     NUMBER         --该等待事件数量                       
WAIT_CLASS      VARCHAR2(64)   --等待事件名称                      
WAIT_TIME       NUMBER         该字段已废弃,可通过SECONDS_IN_WAIT和STATE字段替代 (具体含义,0代表正在等待;>0表示最后一次等待的时间,单位为百分之一秒;-1表示等待时间小于百分之一秒;-2表示参数TIMED_STATISTICS被设置为false)                      
SECONDS_IN_WAIT NUMBER         --如果该会话处于等待状态,则表示当前等待的总时间;如果非等待状态,则表示自最后一次等待以来的总时间                       
STATE           VARCHAR2(19)   --其值可为 WAITING,WAITED UNKNOWN TIME,WAITED SHORT TIME ,WAITED KNOWN TIME
state值的具体含义:WAITING表示会话正在等待;
                  WAITED UNKNOWN TIME表示最后一次等待时间不知,即TIMED_STATISTICS被设置为false;
                  WAITED SHORT TIME表示最后一次等待时间少于百分之一秒;
                  WAITED KNOWN TIME表示最新一次等待时间,可通过wait_time列查看。即该等待时间正好由等待状态得到资源转为执行状态。
2.注意事项
1)oracle11g,在该视图中新增了WAIT_TIME_MICRO,TIME_REMAINING_MICRO,TIME_SINCE_LAST_WAIT_MICRO字段。而SECONDS_IN_WAIT已废弃,用
WAIT_TIME_MICRO and TIME_SINCE_LAST_WAIT_MICRO替代。
TIME_REMAINING_MICRO字段含义:为0表示当前等待超时;>0表示当前等待还需等待的时间;-1表示当前等待将无限制地等待;null表示该会话当前无等待
2)p1,p2,p3参数代表的含义可以通过v$event_name视图的PARAMETER1,PARAMETER2,PARAMETER3查找。不过v$session_wait视图本身中的P1TEXT,
P2TEXT,P3TEXT已经对p1,p2,p3进行了说明,及P1TEXT,P2TEXT,P3TEXT字段值与PARAMETER1,PARAMETER2,PARAMETER3一样。

六、v$session视图
该视图包含了v$session_wait视图的所有字段。该视图记录了每个会话的具体信息。
获取不同用户会话所面临的等待类型及他们所执行的sql语句文本,如下脚本:
SELECT s.username, t.sql_text, s.event
  FROM v$session s, v$sqltext t
WHERE s.sql_hash_value = t.hash_value
   AND s.sql_address = t.address
   AND s.type <> ‘BACKGROUND‘
ORDER BY s.sid, t.hash_value, t.piece;

七、v$sysmetric视图
这是一个显示最近时间间隔的系统度量值,时间间隔为60秒。通过这个视图也可以查看在一个短期间隔内的
Buffer Cache Hit Ratio,Memory Sorts Ratio,Redo Allocation Hit Ratio。

v$waitclassmetric:显示最近60秒时间间隔中等待类的度量值。此视图最多保存一个小时的信息。

SELECT * FROM v$waitstat

v$session_wait_history
该视图保存每个活动会话的最后10个等待事件的有关信息。如v$session和v$session_wait视图只显示最近一次等待的信息。
SELECT seq#, event, wait_time, p1, p2, p3
  FROM v$session_wait_history WHERE sid = 140
ORDER BY seq#;

v$active_session_history:当前的活动会话历史
--查询导致最多等待的对象及这些对象在最后15分钟内等待的事件类型
SELECT 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 / 2880 AND SYSDATE
   AND a.current_obj# = o.object_id
GROUP BY o.object_name, o.object_type, a.event
ORDER BY total_wait_time;

--列出数据库中最后15分钟内最重要的等待事件
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 / 2880 AND SYSDATE
GROUP BY a.event
ORDER BY total_wait_time DESC;

--等待最多的用户
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 / 2880 AND SYSDATE
   AND a.session_id = s.sid
GROUP BY s.sid,s.username
ORDER BY total_wait_time DESC;

--确定等待最多的sql
SELECT a.user_id,
       s.sql_text,
       d.username,
       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 - 30 / 2880 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;

dba_hist_active_sess_history:每60分钟,MMON后台进程都要刷新过滤了得ASH数据到磁盘,使其成为按小时的AWR快照的一部分。若ASH缓冲区已满,
则MMML后台进程进行数据的刷新。ASH数据被刷新到磁盘后,就不能在v$active_session_history视图中看到它了。此时要查看历史数据,就必须通过
dba_hist_active_sess_history视图。

段级动态性能视图:使用它们可以找出哪些表和索引正在使用大量资源或具有大量的等待。
v$segstat_name
v$segstat
v$segment_statistics

时间: 2024-08-06 17:46:45

oracle一视图性能问题的相关文章

oracle物化视图

原文URL: oracle 10g物化视图简介 2012-05-09 17:33:55|  分类: ORACLE性能 |  标签:oracle  物化视图  |举报|字号 订阅 下载LOFTER我的照片书  | 环境oracle 10g 10.2.0.4  linux 64 要大而专业的看oracle自己的文档-sql参考. 说实话,oracle需要学习的内容太多,每个都看过去,实在太费事. 所以如果能够对物化视图有个概览,那最方便不过. 主要涉及内容 物化视图日志,用于快速刷新所必须的 物化视

oracle调优 性能与安全的权衡

性能与安全的权衡 对于数据库调优而言,没有绝对的性能也没有绝对的安全.正如鱼和熊掌不能兼得一样,是不能完全兼顾的,就像是矛和盾此消彼长.下面就对比较常见的几个因素做一个简要的阐述: 1.多元化控制文件: 多个地方,意味着更安全,一个损坏了可以转储另外一个继续使用.但同样,越多也意味着IO压力越大,一般为2到3个控制文件多元化.比如:假设3个控制文件都损坏的概率已经相当低了,再多的控制文件也就没有意义了.因为一个控制文件损坏,数据库立刻就会崩溃,检查点的发生会产生预警信息,这样就可以根据提示人为的

ORACLE物化视图详解

一.物化的一般用法物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处. 1.物化视图的类型ON DEMAND.ON COMMIT.二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图"需要"被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一

oracle系统视图

总结ORACLE系统视图及表大全: dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 dba_rollback_segs 回滚段信息 dba_ts_quotas 用户表空间配额信息 dba_free_space数据库空闲空间信息 d

Oracle 物化视图 说明

一.    物化视图概述 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果.物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能:物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性:物化视图需要占用存储

Oracle 优化和性能调整

分析评价Oracle数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即:  数据库用户响应时间=系统服务时间+用户等待时间  因此,获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量:二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率.  数据库性能优化包括如下几个部分:  调整数据结构的设计 这一部分在开发信息系统之前完成,程序员需要考虑是否使用Oracle数据库的分区功能,对于经常访问的数

oracle 静态视图 物化视图

搜了几分钟才找到一篇靠谱的文章,原来搜 静态视图 出来一堆,现在谷歌也变傻了?都改名 物化 呵呵旧文章估计都因无人访问 系统升级沉入海底了.快清明了 给这些 夭亡的技术文章烧点纸钱! 原文链接:http://www.bitscn.com/pdb/oracle/200904/160511_5.html 物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询

Oracle 11g AWR性能报告

一.自动工作负载库(Automatic Workload Repository,AWR) 自动工作负载库(Automatic Workload Repository,AWR)是在Oracle公司提供的一个工具.AWR来可以自动收集.处理.并保存性能统计结果,这种统计数据存放在内存中并随后存储在数据库中,这些数据既能在报告中显示也可以通过视图查询.可以协助我们找出Oracle的性能瓶颈. AWR收集和处理的统计数据包括: 对象统计,用于确定数据库段(表.索引…)的访问情况 基于时间的统计:数据库活

[转帖]总结ORACLE系统视图及表大全

总结ORACLE系统视图及表大全:dba_开头.....dba_users 数据库用户信息dba_segments 表段信息dba_extents 数据区信息dba_objects 数据库对象信息dba_tablespaces 数据库表空间信息dba_data_files 数据文件设置信息dba_temp_files 临时数据文件信息dba_rollback_segs 回滚段信息dba_ts_quotas 用户表空间配额信息dba_free_space数据库空闲空间信息dba_profiles