ORACLE动态性能视图



一、不同数据库状态下动态性能视图:


用于记录当前例程的活动信息。启动例程时,ORACLE会自动建立动态性能视图;停止例程时,ORACLE会自动删除动态性能视图。数据字典信息是从数据文件中获得,而动态性能视图信息是从SGA和控制文件取得。
通过查询动态视图,一方面可以获取性能数据,另一方面还可以取得与磁盘和内存结构相关的其他信息。
  所有动态性能视图都是以V_$开始的,ORACLE为每个动态性能视图提供了相应的同义词(V$开头)通过查询V$FIXED_TABLE,可以显示所有动态性能视图。动态性能视图的所有者为SYS,并且多数动态性能视图只能由特权用户和DBA用户查询。当数据库处于不同状态时,可以访问的动态性能视图有所不同。

1.   NOMOUNT
启动例程时,ORACLE会打开参数文件,分配SGA并启动后台进程。因此例程处于NOMOUNT状态时,只能访问从SGA中获取信息的动态性能视图。
SGA----àV$PARAMETER     V$SGA   V$OPTION V$PROCESS
      V$SESSION        V$VERSION V$INSTANCE

2.MOUNT
装载数据库时,ORACLE根据初始化参数control_file 打开所有控制文件。当例程处于MOUNT状态时,不仅可以访问从SGA中获取信息的动态性能视图,还可以访问从控制文件中获取信息的动态性能视图。
控制文件-------àV$THREAD V$CONTROLFILE V$DATABASE
            V$DATAFILE   V$DATAFILE_HEADER   V$LOGFILE

3.   OPEN
数据库打开时,ORACLE按照控制文件所记载的信息打开所有数据文件和重做日志。除了可以访问SGA和控制文件中获取信息的动态性能视图外,还可以访问与ORACLE性能相关的动态性能视图(V$FILESTAT   V$SESSION_WAIT   V$WAITSTAT)
注意的是,只有处于OPEN状态时,才能访问数据字典视图。


二、常用动态性能视图:


维护数据库、调整数据库性能时,需要经常访问动态性能视图,以获取例程的动态信息。大多数动态性能视图只能由特权用户和DBA用户访问。

1.   V$FIXED_TABLE
该动态性能视图用于列出所有可用的动态性能视图和动态性能表。

SQL> desc V$FIXED_TABLE;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME                                               VARCHAR2(30)
 OBJECT_ID                                          NUMBER
 TYPE                                               VARCHAR2(5)
 TABLE_NUM                                          NUMBER
SQL> conn system/manager
已连接。
SQL> select name from v$fixed_table where name like 'V$%';

NAME
------------------------------
V$WAITSTAT
V$BH
V$GC_ELEMENT
V$CR_BLOCK_SERVER
V$GC_ELEMENTS_WITH_COLLISIONS
。。。。。。。

2.   V$INSTANCE
获取当前例程的详细信息。

SQL> desc V$INSTANCE;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 INSTANCE_NUMBER                                    NUMBER
 INSTANCE_NAME                                      VARCHAR2(16)
 HOST_NAME                                          VARCHAR2(64)
 VERSION                                            VARCHAR2(17)
 STARTUP_TIME                                       DATE
 STATUS                                             VARCHAR2(12)
 PARALLEL                                           VARCHAR2(3)
 THREAD#                                            NUMBER
 ARCHIVER                                           VARCHAR2(7)
 LOG_SWITCH_WAIT                                    VARCHAR2(15)
 LOGINS                                             VARCHAR2(10)
 SHUTDOWN_PENDING                                   VARCHAR2(3)
 DATABASE_STATUS                                    VARCHAR2(17)
 INSTANCE_ROLE                                      VARCHAR2(18)
 ACTIVE_STATE                                       VARCHAR2(9)
 BLOCKED                                            VARCHAR2(3)

SQL> col host_name format a20;   
SQL> select instance_name,host_name,status from   V$instance;

INSTANCE_NAME    HOST_NAME            STATUS
---------------- -------------------- ------------
orcl             jack.localdomain     OPEN


3.   V$SGA

SQL> desc V$SGA;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME                                               VARCHAR2(20)
 VALUE                                              NUMBER

显示SGA主要组成部分
SQL> select * from V$SGA;

NAME                   VALUE
-------------------- ----------
Fixed Size             282576
Variable Size       83886080
Database Buffers    33554432
Redo Buffers          532480


4.   V$SGAINFO
取得SGA的更详细信息


5.   V$PARAMETER

SQL> desc V$PARAMETER;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NUM                                                NUMBER
 NAME                                               VARCHAR2(80)
 TYPE                                               NUMBER
 VALUE                                              VARCHAR2(512)
 DISPLAY_VALUE                                      VARCHAR2(512)
 ISDEFAULT                                          VARCHAR2(9)
 ISSES_MODIFIABLE                                   VARCHAR2(5)
 ISSYS_MODIFIABLE                                   VARCHAR2(9)
 ISINSTANCE_MODIFIABLE                              VARCHAR2(5)
 ISMODIFIED                                         VARCHAR2(10)
 ISADJUSTED                                         VARCHAR2(5)
 ISDEPRECATED                                       VARCHAR2(5)
 DESCRIPTION                                        VARCHAR2(255)
 UPDATE_COMMENT                                     VARCHAR2(255)
 HASH                                               NUMBER
取得初始化参数的详细信息


配合show parameter使用,查看参数状态

SQL> show parameter log_archive_start;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_start                    boolean     FALSE


6.   V$VERSION
获取ORACLE版本的详细信息

SQL> select * from V$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production


7.   V$OPTION
显示已经安装的ORACLE选项
SQL> select * from V$OPTION;


8.   V$SESSION
显示会话的详细信息

SQL> desc  V$SESSION;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SADDR                                              RAW(4)
 SID                                                NUMBER
 SERIAL#                                            NUMBER
 AUDSID                                             NUMBER
 PADDR                                              RAW(4)
 USER#                                              NUMBER
 USERNAME                                           VARCHAR2(30)
 COMMAND                                            NUMBER
 OWNERID                                            NUMBER
 TADDR                                              VARCHAR2(8)
 LOCKWAIT                                           VARCHAR2(8)
 STATUS                                             VARCHAR2(8)
 SERVER                                             VARCHAR2(9)
 SCHEMA#                                            NUMBER
 SCHEMANAME                                         VARCHAR2(30)
 OSUSER                                             VARCHAR2(30)
 PROCESS                                            VARCHAR2(12)
 MACHINE                                            VARCHAR2(64)
 TERMINAL                                           VARCHAR2(30)
 PROGRAM                                            VARCHAR2(48)
 TYPE                                               VARCHAR2(10)
 SQL_ADDRESS                                        RAW(4)
 SQL_HASH_VALUE                                     NUMBER
 SQL_ID                                             VARCHAR2(13)
 SQL_CHILD_NUMBER                                   NUMBER
 PREV_SQL_ADDR                                      RAW(4)
 PREV_HASH_VALUE                                    NUMBER
 PREV_SQL_ID                                        VARCHAR2(13)
 PREV_CHILD_NUMBER                                  NUMBER
 MODULE                                             VARCHAR2(48)
 MODULE_HASH                                        NUMBER
 ACTION                                             VARCHAR2(32)
 ACTION_HASH                                        NUMBER
 CLIENT_INFO                                        VARCHAR2(64)
 FIXED_TABLE_SEQUENCE                               NUMBER
 ROW_WAIT_OBJ#                                      NUMBER
 ROW_WAIT_FILE#                                     NUMBER
 ROW_WAIT_BLOCK#                                    NUMBER
 ROW_WAIT_ROW#                                      NUMBER
 LOGON_TIME                                         DATE
 LAST_CALL_ET                                       NUMBER
 PDML_ENABLED                                       VARCHAR2(3)
 FAILOVER_TYPE                                      VARCHAR2(13)
 FAILOVER_METHOD                                    VARCHAR2(10)
 FAILED_OVER                                        VARCHAR2(3)
 RESOURCE_CONSUMER_GROUP                            VARCHAR2(32)
 PDML_STATUS                                        VARCHAR2(8)
 PDDL_STATUS                                        VARCHAR2(8)
 PQ_STATUS                                          VARCHAR2(8)
 CURRENT_QUEUE_DURATION                             NUMBER
 CLIENT_IDENTIFIER                                  VARCHAR2(64)
 BLOCKING_SESSION_STATUS                            VARCHAR2(11)
 BLOCKING_INSTANCE                                  NUMBER
 BLOCKING_SESSION                                   NUMBER
 SEQ#                                               NUMBER
 EVENT#                                             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
 WAIT_CLASS#                                        NUMBER
 WAIT_CLASS                                         VARCHAR2(64)
 WAIT_TIME                                          NUMBER
 SECONDS_IN_WAIT                                    NUMBER
 STATE                                              VARCHAR2(19)
 SERVICE_NAME                                       VARCHAR2(64)
 SQL_TRACE                                          VARCHAR2(8)
 SQL_TRACE_WAITS                                    VARCHAR2(5)
 SQL_TRACE_BINDS                                    VARCHAR2(5)
SQL> select sid,serial#,username from V$session
   2   where username is not null;

   SID SERIAL# USERNAME
---------- ---------- ------------------------------
7 198 SYS
如果username为NULL,则表示是后台进程会话。


9.   V$PROCESS
显示与ORACLE相关的所有进程信息(包括后台进程和服务器进程)

SQL> desc V$PROCESS;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ADDR                                               RAW(4)
 PID                                                NUMBER
 SPID                                               VARCHAR2(12)
 USERNAME                                           VARCHAR2(15)
 SERIAL#                                            NUMBER
 TERMINAL                                           VARCHAR2(30)
 PROGRAM                                            VARCHAR2(48)
 TRACEID                                            VARCHAR2(255)
 BACKGROUND                                         VARCHAR2(1)
 LATCHWAIT                                          VARCHAR2(8)
 LATCHSPIN                                          VARCHAR2(8)
 PGA_USED_MEM                                       NUMBER
 PGA_ALLOC_MEM                                      NUMBER
 PGA_FREEABLE_MEM                                   NUMBER
 PGA_MAX_MEM                                        NUMBER

SQL> select a.terminal,a.spid,a.pga_alloc_mem
   2   from V$process a ,V$session b
3       where a.addr=b.paddr and b.username='SCOTT';


10.       V$BGPROCESS
显示后台进程详细信息
SQL>select name,description from V$bgprocess
where paddr<>'00';
NAME    DESCRIPTION
---------- ------------------------------
PMON    process cleanup
DBW0    db writer process 0
LGWR    Redo etc.
CKPT    checkpoint
SMON    System Monitor Process
RECO    distributed recovery


11.       V$DATABASE
取得当前数据库的详细信息
SQL> select name, log_mode,created from V$database;

NAME    LOG_MODE     CREATED
---------- ------------ ----------
DPX007     NOARCHIVELOG 08-10月-06


12.       V$CONTROLFILE
取得当前数据库所有控制文件的信息。

SQL> desc V$CONTROLFILE;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 STATUS                                             VARCHAR2(7)
 NAME                                               VARCHAR2(513)
 IS_RECOVERY_DEST_FILE                              VARCHAR2(3)
 BLOCK_SIZE                                         NUMBER
 FILE_SIZE_BLKS                                     NUMBER


SQL> select name from V$controlfile;

NAME
----------
F:\ORANT\O
RADATA\DPX
007\CONTRO
L01.CTL
。。。。。。。。。


13.       V$DATAFILE
取得当前数据库的所有数据文件的详细信息
SQL> select file#,name,bytes from v$datafile;

    FILE# NAME          BYTES
---------- ---------- ----------
      1 F:\ORANT\O   340787200
          RADATA\DPX
          007\SYSTEM
01. DBF
。。。。。。。。。


14.       V$DBFILE
取得数据文件编号及名称
SQL> select * from V$dbfile;


15.       V$LOGFILE
显示重做日志成员的信息
SQL> col member format a50
SQL> select group#,member from V$logfile;

GROUP# MEMBER
---------- -----------------------------------------
      3 F:\ORANT\ORADATA\DPX007\REDO03.LOG
      2 F:\ORANT\ORADATA\DPX007\REDO02.LOG
      1 F:\ORANT\ORADATA\DPX007\REDO01.LOG


16.       V$LOG
显示日志组的详细信息
SQL> select group#,thread#,sequence#,bytes,members,status
   2   from V$log;

GROUP# THREAD#   SEQUENCE#    BYTES MEMBERS STATUS
---------- ---------- ---------- ---------- ---------- --------------
      1       1       11   104857600       1 INACTIVE
      2       1       12   104857600       1 INACTIVE
      3       1       13   104857600       1 CURRENT


17.       V$THREAD
取得重做线程的详细信息,当使用RAC结构时,每个例程都对应一个重做线程,并且每个重做线程包含独立的重做日志组。
SQL> select thread#,status,groups,instance,sequence#
   2   from V$thread;

THREAD# STATUS     GROUPS INSTANCE SEQUENCE#
---------- ------ ---------- ---------- ----------
      1 OPEN          3 dpx007          13


18.       V$LOCK
显示锁信息,通过与V$SESSION进行连接查询,可以显示占有锁的会话,以及等待锁的会话。
SQL> col username format a10;
SQL> col machine format a25;
SQL> select a.username,a.machine,b.lmode,b.request
   2   from V$session a,V$lock b
   3   where a.sid=b.sid and a.type='USER';


19.       V$LOCKED_OBJECT
显示被加锁的数据库对象。通过与DBA_OBJECTS进行连接查询,以显示具体的对象名及执行加锁操作的ORACLE用户名。
select a.oracle_username,b.owner||'.'||b.object_name object
from V$locked_object a,dba_objects b
where a.object_id=b.object_id;


20.       V$ROLLNAME V$ROLLSTAT
V$ROLLNAME显示处于ONLINE状态的UNDO段,V$ROLLSTAT显示UNDO段的统计信息。通过二者执行连接查询,以显示UNDO的详细统计信息。
SQL> select a.name,b.xacts from V$rollname a,V$rollstat b
   2   where a.usn=b.usn;

NAME          XACTS
---------- ----------
SYSTEM              0
_SYSSMU1$           0
。。。。。。


21.       V$TABLESPACE
显示表空间信息

SQL> desc  V$TABLESPACE;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TS#                                                NUMBER
 NAME                                               VARCHAR2(30)
 INCLUDED_IN_DATABASE_BACKUP                        VARCHAR2(3)
 BIGFILE                                            VARCHAR2(3)
 FLASHBACK_ON                                       VARCHAR2(3)
 ENCRYPT_IN_BACKUP                                  VARCHAR2(3)


SQL> select * from V$tablespace;

   TS# NAME    INC
--------- ---------- ---
       2 CWMLITE YES
       3 DRSYS    YES
       4 EXAMPLE YES
       5 INDX    YES
       0 SYSTEM     YES
       7 TOOLS    YES
       1 UNDOTBS YES
       8 USERS    YES
       6 TEMP    YES


22.       V$TEMPFILE
显示数据库所包含的临时文件
SQL> select name from V$tempfile;

NAME
----------
F:\ORANT\O
RADATA\DPX
007\TEMP01
.DBF


三、oracle最重要的9个动态性能视图

v$session + v$session_wait (在10g里功能被整合,凑合算1个吧.)
v$process
v$sql
v$sqltext
v$bh (更宁愿是x$bh)
v$lock
v$latch_children
v$sysstat

SQL> desc v$sysstat;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 STATISTIC#                                         NUMBER
 NAME                                               VARCHAR2(64)
 CLASS                                              NUMBER
 VALUE                                              NUMBER
 STAT_ID                                            NUMBER


v$system_event


按组分的几组重要的性能视图

1.System 的 over view 
v$sysstat ,--整个系统的统计信息

v$system_event , --This view contains information on total waits for an event.每个事件的等待情况

v$parameter



2.某个session 的当前情况
v$process , v$session ,

v$session_wait ,--This view lists the resources or events for which active sessions are waiting. 当前活动的会话正在等待的事件情况

v$session_event , --This view lists information on waits for an event by a session. 每个会话对每个事件的等待情况

v$sesstat –-每个会话的统计信息


3.SQL 的情况
v$sql , v$sqlarea , v$SQL_PLAN , V$SQL_PLAN_STATISTICS, v$sqltext_with_newlines


4. Latch / lock /ENQUEUE(闩,锁相关)
v$latch , v$latch_children , v$latch_holder , v$lock ,V$ENQUEUE_STAT ,V$ENQUEUE_LOCK


5. IO 方面的
v$segstat , v$filestat , v$tempstat ,v$datafile , v$tempfile


6.shared pool / Library cache
v$Librarycache , v$rowcache , x$ksmsp


7.几个advice也不错
v$db_cache_advice , v$PGA_TARGET_ADVICE, v$SHARED_POOL_ADVICE


8.等待事件:


v$system_event, v$session_wait ,v$session_event


9.块竞争:

v$waitstat-- This view lists block contention statistics.块竞争引起的等待统计


10.热块:

v$bh



浏览(557)  评论  转载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值