V$FIXED_TABLE & V$FIXED_VIEW_DEFINITION

官方解釋:

V$FIXED_TABLE displays all dynamic performance tables, views, and derived tables in the database. Some V$ tables (for example, V$ROLLNAME) refer to real tables and are therefore not listed.

Column Datatype Description
NAME VARCHAR2(30) Name of the object
OBJECT_ID NUMBER Identifier of the fixed object
TYPE VARCHAR2(5) Object type (TABLE | VIEW)
TABLE_NUM NUMBER Number that identifies the dynamic performance table if it is of type TABLE



V$FIXED_VIEW_DEFINITION contains the definitions of all the fixed views (views beginning with V$). Use this table with caution. Oracle tries to keep the behavior of fixed views the same from release to release, but the definitions of the fixed views can change without notice. Use these definitions to optimize your queries by using indexed columns of the dynamic performance tables.

Column Datatype Description
VIEW_NAME VARCHAR2(30) Name of the fixed view
VIEW_DEFINITION VARCHAR2(4000) Definition of the fixed view

例如:select view_definition from v$fixed_view_definition a where a.VIEW_NAME='V$PARAMETER'; 能夠查出視圖V$PARAMETER的定義;
SELECT NUM,
       NAME,
       TYPE,
       VALUE,
       DISPLAY_VALUE,
       ISDEFAULT,
       ISSES_MODIFIABLE,
       ISSYS_MODIFIABLE,
       ISINSTANCE_MODIFIABLE,
       ISMODIFIED,
       ISADJUSTED,
       ISDEPRECATED,
       ISBASIC,
       DESCRIPTION,
       UPDATE_COMMENT,
       HASH
  FROM
GV$PARAMETER
 WHERE INST_ID = USERENV('Instance')

然後再在此表裏找出V$PARAMETER的定義中所用的表(GV$PARAMETER),一般是GV$開頭的視圖;就能查到哪些固定表組成了這些視圖,一般是X$開頭的固定表;
select view_definition from v$fixed_view_definition a where a.VIEW_NAME='GV$PARAMETER'; 
SELECT X.INST_ID,
       X.INDX + 1,
       KSPPINM,
       KSPPITY,
       KSPPSTVL,
       KSPPSTDVL,
       KSPPSTDF,
       DECODE(BITAND(KSPPIFLG / 256, 1), 1, 'TRUE', 'FALSE'),
       DECODE(BITAND(KSPPIFLG / 65536, 3),
              1,
              'IMMEDIATE',
              2,
              'DEFERRED',
              3,
              'IMMEDIATE',
              'FALSE'),
       DECODE(BITAND(KSPPIFLG, 4),
              4,
              'FALSE',
              DECODE(BITAND(KSPPIFLG / 65536, 3), 0, 'FALSE', 'TRUE')),
       DECODE(BITAND(KSPPSTVF, 7), 1, 'MODIFIED', 4, 'SYSTEM_MOD', 'FALSE'),
       DECODE(BITAND(KSPPSTVF, 2), 2, 'TRUE', 'FALSE'),
       DECODE(BITAND(KSPPILRMFLG / 64, 1), 1, 'TRUE', 'FALSE'),
       DECODE(BITAND(KSPPILRMFLG / 268435456, 1), 1, 'TRUE', 'FALSE'),
       KSPPDESC,
       KSPPSTCMNT,
       KSPPIHASH
  FROM
X$KSPPI X, X$KSPPCV Y
 WHERE (X.INDX = Y.INDX)
   AND BITAND(KSPPIFLG, 268435456) = 0
   AND ((TRANSLATE(KSPPINM, '_', '#') NOT LIKE '##%') AND
       ((TRANSLATE(KSPPINM, '_', '#') NOT LIKE '#%') OR
       (KSPPSTDF = 'FALSE') OR (BITAND(KSPPSTVF, 5) > 0)))
找到了最終表是X$KSPPI 和 X$KSPPCV 


這段時間多以動態性能視圖爲討論的焦點,關於動態性能視圖有以下總結:

在實例啓動時,會先創建X$表,然後基於X$表創建GV_$  V_$ 視圖,在基於GV_$ V_$視圖創建GV$V$同義詞。 我們一般查詢的都是同義詞。 關於這些視圖的定義,可以通過V$FIXED_VIEW_DEFINITION 視圖 來查看。 在數據庫運行期間,動態性能視圖保存在內存中,時刻監控着數據庫的狀態,我們在需要的時候可以查看這些視圖。 當實例關閉時,數據庫又會從內存中自動刪除這些動態性能視圖。


發佈了151 篇原創文章 · 獲贊 45 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章