資料字典和動態效能檢視基礎

dba_manganese發表於2014-03-09
一、資料字典概述
Oracle將對資料庫系統的操作及相關資訊記錄到系統的只讀表或只讀檢視中,我們稱這些表和檢視為資料字典;資料字典是資料庫的核心,儲存了非常重要的控制資訊,在建立資料庫時,就建立了資料字典;資料字典描述了資料庫自身和資料庫中的各種物件,它們以只讀表的形式儲存在system表空間中,這些物件由sys使用者所擁有,由oracle伺服器來管理。資料字典提供的資訊分為如下幾類:
1、資料庫的物理結構和邏輯結構
2、資料庫物件的定義和空間分配
3、資料完整性約束
4、使用者資訊
5、角色資訊
6、許可權資訊
7、審計資訊

二、資料字典的型別

1、基表:儲存了對資料庫的描述,是在執行create database命令時建立的,其建立指令碼儲存在$ORACLE_HOME\rdbms\admin\sql.bsq中。
2、資料字典檢視:簡化了基表的資訊已便於使用者理解,通過公共的別名訪問,其建立指令碼儲存在$ORACLE_HOME\rdbms\admin\catalog.sql中。
資料字典檢視的分類:
a.) DBA_XXXX:訪問所有模式物件的某項資訊,比如:dba_tables,dba_users等等
b.) ALL_XXXX:當前使用者可訪問的模式物件的某項資訊,比如:dba_tablespaces等等
c.) USER_XXXX  :當前使用者的模式物件的某項資訊。
現在可知,資料字典檢視的資訊來自於基表,那麼如何確定資料字典檢視的資訊來自於那些基表呢?

SQL> select referenced_owner,referenced_name,referenced_type from dba_dependencies where owner='SYS' and name='DBA_USERS' and type='VIEW';
REFERENCED_OWNER     REFERENCED_NAME                REFERENCED_TYPE
-------------------- ------------------------------ -----------------
SYS                  TS$                            TABLE
SYS                  USER$                          TABLE
SYS                  PROFILE$                       TABLE
SYS                  PROFNAME$                      TABLE
SYS                  USER_ASTATUS_MAP               TABLE
SYS                  RESOURCE_GROUP_MAPPING$        TABLE

三、動態效能表(檢視)概述
與資料字典類似,在動態效能檢視的概念中也包含動態效能表和動態效能檢視。
1、動態效能表是虛表,它不是段,不儲存在磁碟當中。動態效能表記錄了當前資料庫的活動資訊,可以使用v$fixed_table來檢視動態效能表。在動態效能表中記錄的都是關於例項的活動資訊,例項啟動後才會建立這些表,一旦例項關閉,這些資訊也將丟失。
2、動態效能檢視是由動態效能表組合而成,注意它的名稱字首為v_$,而不是我們常見的v$,v$只是其同義詞。下面看一個這方面的例子:
比方說:eric(普通使用者)使用者想檢視v$session檢視,要如何處理呢?通常只要使用select on的物件許可權即可。
SQL> grant select on v$session to eric;
grant select on v$session to eric
                *
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
SQL> grant select on v_$session to eric;
Grant succeeded.
3、使用動態效能檢視應注意,在動態效能檢視無法執行DML語句,非SYS使用者不能操作動態效能檢視。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29515435/viewspace-1104185/,如需轉載,請註明出處,否則將追究法律責任。

相關文章