程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle動態性能視圖(備份資料)

oracle動態性能視圖(備份資料)

編輯: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> 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> col host_name format a20
SQL> select instance_name,host_name,status from   V$instance;INSTANCE_NAME HOST_NAME          STATUS
---------------- -------------------- -------
dpx007           DPX123             OPEN

3.   V$SGA
顯示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> select name,value,description from v$parameter
   2   where name='db_name';NAME    VALUE    DESCRIPTION
---------- ---------- ------------------------------
db_name dpx007     database name specifIEd in CRE
ATE DATABASE

6.   V$VERSION
獲取Oracle版本的詳細信息
SQL> select * from V$version;BANNER
-------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
PL/SQL Release 9.0.1.1.1 - Production
CORE 9.0.1.1.1    Production
TNS for 32-bit Windows: Version 9.0.1.1.0 - Production
NLSRTL Version 9.0.1.1.1 – Production

7.   V$OPTION
顯示已經安裝的Oracle選項
SQL> select * from V$OPTION;

8.   V$SESSION
顯示會話的詳細信息
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> 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> 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> 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
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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved