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

數據字典視圖與動態性能視圖,字典視圖動態性能

編輯:Oracle教程

數據字典視圖與動態性能視圖,字典視圖動態性能


在Oracle數據庫中,與用戶有關的表有三種,一是用戶自己創建的表,二是數據字典視圖,三是動態性能視圖。
在後兩種視圖中,用戶可以查詢自己關心的信息。

數據字典視圖

數據字典是一種系統表,它在數據庫被創建時自動產生,並且由數據庫服務器本身進行維護和更新
在數據字典中包含了數據庫的相關信息。

在數據字典中存儲了以下信息:
·數據庫的物理結構和邏輯結構信息。
·用戶和權限信息。
·數據庫對象的信息,如表、視圖、索引、存儲程序、約束等。
·審計信息。
由於數據字典是一個非常大而且非常復雜的表,用戶不方便對其進行直接的訪問,而且這樣做也不安全。
為了用戶訪問方便, Oracle提供了許多數據字典視圖,這些視圖就建立在數據字典基表上,我們平常所說的數據字典就是指這些數據字典視圖。
數據字典視圖的結構可以通過在SQL*Plus 中執行DESC命令來查看。
對一個用戶而言,可以訪問的數據字典視圖很多,如果按照所包含的信息的范圍大小來劃分,有三類主要的數據字典視圖,這些視圖的名稱分別以以下標識符開始:
user_ 存儲當前用戶所擁有某類對象的信息。
all_ 存儲當前用戶有權訪問的某類對象的信息。
dba_ 存儲數據庫中所有的某類數據對象的信息,僅管理員可以訪問。
例如,從數據字典視圖user_objects 中可以查詢當前用戶所擁有的所有對象的信息,包括表、視圖、索引、存儲程序等。
如果要查詢當前用戶所擁有的所有對象的名稱、類型、創建時間、狀態等信息,可以執行下列SELECT語句:

SELECT object_name, object_type, created, status FROM user_objects;

在數據字典視圖user_tables 中存儲了當前用戶所擁有的表的信息。

例如,要查詢當前用戶所擁有的表的名稱和所在的表空間名稱,可以執行下列SELECT語句:

SELECT table_name, tablespace_name FROM user_tables;

從數據字典視圖all_tables 中可以查詢當前用戶可以訪問的表的信息,包括用戶自己創建的表,以及其他用戶授權該用戶可以訪問的表。
例如,通過執行下面的SELECT語句,可以了解當前用戶可以訪問的表的名稱:

SELECT table_name FROM all_tables;

從數據字典視圖user_tab_columns 中可以查詢當前用戶所擁有的表的各個列的定義。

例如,通過執行下列的SELECT語句,可以了解表DEPT的各個列的定義:

SELECT column_name, data_type, data_length FROM user_tab_columns WHERE table_name='DEPT';

從數據字典視圖dba_tables 中能夠查詢當前數據庫中所有表的信息,這類以dba_開始的視圖只能由SYS用戶查看。
例如,下面的SELECT語句用於查詢數據庫中所有表的名稱、所在表空間的名稱、所有者等信息:

SELECT table_name, tablespace_name, owner FROM dba_tables;

一個用戶可以訪問的數據字典是很多的,這些數據字典的名字是與所存儲的對象信息有關的
例如,數據字典視圖user_indexes可以查詢當前用戶所創建的索引的信息,在dba_users 中,可以查詢當前數據庫中所有用戶的信息。

動態性能視圖

如果說數據字典視圖反映了數據庫的信息,那麼動態性能視圖則主要反映了實例的信息
數據字典視圖中的信息是靜態的,來自數據字典基表,它反映的是數據庫的信息,這些信息不會因為數據庫服務器的關閉而消失。
動態性能視圖中的信息則是動態變化的,它反映了實例的實際運行情況,這些信息來自SGA或者控制文件,隨著實例的關閉和重新啟動,這些信息將重新產生。

動態性能視圖的名稱基本上是以v$開始的。

從這些視圖中可以獲得一些有用的統計信息,這些信息主要用於對數據庫的性能進行調優。
例如,執行下面的SELECT語句可以了解數據庫中一些等待事件的發生情況:

SELECT event, total_waits, time_waited, average_wait FROM v$system_event;

下面的語句用於查看SGA 中每種緩沖區的大小:

SELECT name, bytes/1024/1024 mb FROM v$sgastat;

 

 

 

 

 

 



 

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