Oracle邏輯結構全景結構圖
以下為個人整理的一些關于Oracle邏輯結構的相關數據字典:
SELECT * FROM
DBA_TABLESPACES--記錄各個表空間的詳細信息
SELECT * FROM
DBA_TABLESPACE_USAGE_METRICS--記錄各個表空間的使用狀況
SELECT * FROM
DBA_DATA_FILES --記錄各個數據文件的詳細信息
SELECT * FROM
DBA_SEGMENTS --記錄各個段的詳細信息,與DBA_TABLES,DBA_INDEXES,DBA_LOBS,DBA_PART_TABLES,DBA_PART_INDEXES,
DBA_PART_LOBS,DBA_OBJECTS搭配使用
SELECT * FROM
DBA_LOBS--BLOB字段所對應的字段名稱
SELECT * FROM
DBA_INDEXES--分區索引需要通過DBA_INDEXS來找到對應的表名
SELECT * FROM
DBA_EXTENTS--記錄各個區間對象的詳細信息
關于塊對象可以通過表記錄中的ROWID來獲取,大概涉及到這一層就太細致了,所以Oracle也不采用數據字典的方式來進行控制了。這一點在Concept中有細致的描述,基于本地管理表空間的管理方式也是基于區間頭部的位圖方式管理相應的塊的。
實際上這些DBA_對象也不過是數據庫中的一個個視圖而已,由更加底層的視圖或表組合起來的,如果有興趣的話,可以自行鉆研下去
SELECT * FROM
V$TABLESPACE--記錄表空間的基本信息,對象ID,表空間名稱
SELECT * FROM
V$DATAFILE--記錄數據文件的基本信息,對象ID,表空間ID,文件名稱以及狀態、大小和相應的變化
SELECT * FROM
V$SEGSTAT--實時監控數據庫段級對象的統計信息
SELECT * FROM
V$SEGSTAT_NAME --段級對象的統計項目
SELECT * FROM
V$SEGMENT_STATISTICS --實時監控段級對象的性能,說穿了和V$SEGSTAT有點像,統計信息更豐富一些
這些V$視圖提供的信息比不上DBA_視圖豐富,而且本身這些視圖是基于同義詞的。
The next example demonstrates how to use V$SEGMENT_STATISTICS to
determine the top 10 tables that have incurred the most physical I/O
operations.
SELECT
TABLE_NAME,TOTAL_PHYS_IO
FROM ( SELECT
OWNER||'.'||OBJECT_NAME AS TABLE_NAME,
SUM(VALUE) AS TOTAL_PHYS_IO
FROMV$SEGMENT_STATISTICS
WHEREOWNER!='SYS' AND OBJECT_TYPE='TABLE'
ANDSTATISTIC_NAME IN ('physical reads','physical reads direct',
'physical writes','physical
writes direct')
GROUP BY OWNER||'.'||OBJECT_NAME
ORDER BY TOTAL_PHYS_IO DESC)
WHERE ROWNUM <=10;
Using the V$SEGMENT_STATISTICS Dynamic
Performance View
學習動態性能表(17)--v$segstat&v$segment_statistics