日常使用Oracle的過程中,總是免不了要對各種表進(jìn)行查詢。在Oracle數(shù)據(jù)庫中,通常通過查詢視圖來代替物理表的查詢。視圖是基于數(shù)據(jù)表創(chuàng)建的一種邏輯上的虛擬表結(jié)構(gòu),通過將一些常用的表結(jié)構(gòu)和查詢操作通過聯(lián)合而形成的,在使用過程中使用視圖代替數(shù)據(jù)表的查詢可以使一些常見的查詢操作事倍功半。
這里簡單描述下視圖和數(shù)據(jù)表之間的關(guān)系
- 數(shù)據(jù)表: 是物理上的結(jié)構(gòu),存儲在底層的硬盤上,占用實際硬盤的物理空間;
- 視圖: 是邏輯上的結(jié)構(gòu),是表與表之間的一種或多種邏輯映射,存儲在數(shù)據(jù)字典里,不占用實際的物理硬盤空間;
進(jìn)入數(shù)據(jù)庫,通過 all_views 視圖查看數(shù)據(jù)庫的所有視圖
> select OWNER,VIEW_NAME from all_views; /* 視圖中的字段會很多,使用`desc {view_name}`查看視圖的字段名選擇可用的字段名 */
數(shù)據(jù)庫常用視圖
-
USER_TABLES: 當(dāng)前用戶下的所有數(shù)據(jù)表
/* 查詢表名稱及所屬表空間 */
> select TABLE_NAME,TABLESPACE_NAME from USER_TABLES;
-
ALL_TABLES: 所有用戶的數(shù)據(jù)表
/* 查詢表所屬用戶、表名稱及所屬表空間 */
> select OWNER,TABLE_NAME,TABLESPACE_NAME from ALL_TABLES;
-
DBA_TABLES: DBA用戶可以訪問的數(shù)據(jù)表
/* 查詢表所屬用戶、表名稱及所屬表空間 */
> select OWNER,TABLE_NAME,TABLESPACE_NAME from DBA_TABLES;
-
ALL_INDEXES: 存放數(shù)據(jù)表索引的視圖
/* 查詢索引對應(yīng)名稱、類型、及對應(yīng)的表空間*/
> select OWNER,INDEX_NAME,INDEX_TYPE,TABLE_NAME,TABLESPACE_NAME from ALL_INDEXES;
-
USER_EXTENTS: 存放用戶所擁有對象的段的視圖
/* 查詢用戶擁有的段中的段名稱、分區(qū)名、段類型、表空間及所占用的字節(jié)數(shù) */
> select SEGMENT_NAME,PARTITION_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES from USER_EXTENTS;
-
DBA_EXTENTS: 數(shù)據(jù)庫中所有段包含的區(qū)的視圖
/* 查詢所有用戶擁有的段中的段名稱、分區(qū)名、段類型、表空間及所占用的字節(jié)數(shù) */
> select OWNER,SEGMENT_NAME,PARTITION_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES from DBA_EXTENTS;
-
DBA_DATA_FILES: 數(shù)據(jù)庫中所有數(shù)據(jù)文件相關(guān)的視圖
/* 查詢數(shù)據(jù)文件大小、名稱、對應(yīng)表空間及是否自動增長 */
> select FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024/1024,STATUS,AUTOEXTENSIBLE from DBA_DATA_FILES;
FILE_NAME TABLESPACE_NAME BYTES/1024/1024/1024 STATUS AUT
------------------------------------------------------------ -------------------- -------------------- --------- ---
+DATADG/RAC/system01.dbf SYSTEM 1.03515625 AVAILABLE YES
+DATADG/RAC/sysaux01.dbf SYSAUX 21.1035156 AVAILABLE YES
-
V_$LOG: Redo日志相關(guān)視圖
/* 查詢REDO日志相關(guān)組及日志大小 */
> select GROUP#,THREAD#,BYTES/1024/1024/1024,MEMBERS,ARCHIVED,STATUS from V_$LOG;
GROUP# THREAD# BYTES/1024/1024/1024 MEMBERS ARC STATUS
---------- ---------- -------------------- ---------- --- ----------------
9 1 10 1 NO CURRENT
23 2 10 1 NO CURRENT
-
V_$LOGFILE: REDO日志文件視圖
/* 查看redo日志組成員 */
> select GROUP#,MEMBER,TYPE from V_$LOGFILE;
GROUP# MEMBER TYPE
---------- -------------------------------------------------- -------
6 +LOGDG/RAC/ONLINELOG/group_6.261.1095247683 ONLINE
7 +LOGDG/RAC/ONLINELOG/group_7.262.1095247717 ONLINE
-
V_$CONTROLFILE: 控制文件視圖
/* 查詢數(shù)據(jù)庫所使用的控制文件 */
> select STATUS,NAME,BLOCK_SIZE from V_$CONTROLFILE;
STATUS NAME BLOCK_SIZE
------- ------------------------------ ----------
+DATADG/RAC/control01.ctl 16384
+DATADG/RAC/control02.ctl 16384
-
GV_$CONTROLFILE: 集群級別的控制文件視圖
> select INST_ID,STATUS,NAME,BLOCK_SIZE from GV_$CONTROLFILE;
INST_ID STATUS NAME BLOCK_SIZE
---------- ------- -------------------------------------------------- ----------
1 +NVMEDG/RAC/control01.ctl 16384
2 +NVMEDG/RAC/control02.ctl 16384
-
DBA_DIRECTORIES: 存放數(shù)據(jù)庫所有用戶可以訪問的數(shù)據(jù)字典
> select OWNER,DIRECTORY_NAME,DIRECTORY_PATH from DBA_DIRECTORIES;
OWNER DIRECTORY_NAME DIRECTORY_PATH
------- -------------------------- ------------------------
SYS DBMS_OPTIM_LOGDIR /****/12.2.0/cfgtoollogs
-
DBA_SEGMENTS: 數(shù)據(jù)庫所有的段視圖
/* 查詢表空間索引占用的空間情況 */
> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,sum(BYTES/1024/1024/1024) from dba_segments where OWNER='SOE' group by OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME;
OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME SUM(BYTES/1024/1024/1024)
------- -------------------- -------------- -------------------- -------------------------
SOE PRODUCT_DESCRIPTIONS TABLE SOE .000305176
-
DBA_FREE_SPACE: 數(shù)據(jù)庫剩余表空間統(tǒng)計視圖
/* 查詢數(shù)據(jù)庫已使用表空間并根據(jù)表空間名稱分組 */
> select TABLESPACE_NAME,sum(BYTES/1024/1024/1024) from DBA_FREE_SPACE group by TABLESPACE_NAME;
TABLESPACE_NAME SUM(BYTES/1024/1024/1024)
-------------------- -------------------------
SYSTEM 4.99133301
UNDOTBS2 136.481812
-
V_$SQL_PLAN: 實例級別的sql執(zhí)行計劃
/* 查詢sql執(zhí)行語句的ID */
> select SQL_ID,PLAN_HASH_VALUE,TIMESTAMP,OBJECT# from V_$SQL_PLAN;
SQL_ID PLAN_HASH_VALUE TIMESTAMP OBJECT#
------------- --------------- ------------------- ----------
94qn6y14kw01g 1388734953 2022-03-01 16:25:37
94qn6y14kw01g 1388734953 2022-03-01 16:25:37
ASM常用視圖
-
V$ASM_DISK: ASM磁盤組中關(guān)于磁盤的詳細(xì)信息
/* 查詢磁盤組中磁盤名稱及狀態(tài)大小 */
> select GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,HEADER_STATUS,STATE,NAME,TOTAL_MB from V$ASM_DISK;
GROUP_NUMBER DISK_NUMBER MOUNT_STATUS HEADER_STATUS STATE NAME TOTAL_MB
------------ ----------- -------------- ------------------------ ---------------- ------------------------------ ----------
1 2 CACHED MEMBER NORMAL LOGDG_0002 204800
3 1 CACHED MEMBER NORMAL OCRVOTE_0001 6144
-
V$ASM_DISKGROUP: ASM磁盤組視圖
/* 查詢asm中所有磁盤組的信息 */
> select GROUP_NUMBER,NAME,ALLOCATION_UNIT_SIZE,STATE,TYPE,TOTAL_MB/1024 from V$ASM_DISKGROUP;
GROUP_NUMBER NAME ALLOCATION_UNIT_SIZE STATE TYPE TOTAL_MB/1024
------------ ------------------------------ -------------------- ---------------------- -------------------- -------------
1 LOGDG 1048576 MOUNTED NORMAL 600
3 OCRVOTE 4194304 MOUNTED NORMAL 18
-
V$ASM_OPERATION: ASM磁盤組磁盤重平衡視圖
/* 查詢磁盤組重平衡進(jìn)度 */
> select GROUP_NUMBER,OPERATION,STATE,POWER,ACTUAL,EST_WORK,EST_RATE,EST_MINUTES from V$ASM_OPERATION;
GROUP_NUMBER OPERATION STATE POWER ACTUAL EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- -----------
2 REBAL WAIT 11 11 0 0 0
2 REBAL WAIT 11 11 0 0 0
2 REBAL RUN 11 11 2025371 72715 12
2 REBAL DONE 11 11 0 0 0
-
V$ASM_FILE: 存放ASM磁盤組中的文件信息
/* 查詢ASM數(shù)據(jù)文件大小及類型*/
> select GROUP_NUMBER,FILE_NUMBER,SPACE/1024/1024/1024,TYPE,REDUNDANCY from V$ASM_FILE;
GROUP_NUMBER FILE_NUMBER SPACE/1024/1024/1024 TYPE REDUNDANCY
------------ ----------- -------------------- -------------------- ------------
1 256 .395507813 ONLINELOG MIRROR
1 257 .395507813 ONLINELOG MIRROR
-
V$ASM_CLIENT: ASM實例及數(shù)據(jù)庫實例信息相關(guān)的視圖
/* 查詢ASM實例及數(shù)據(jù)庫實例名稱及版本信息 */
> select GROUP_NUMBER,INSTANCE_NAME,DB_NAME,CLUSTER_NAME,STATUS,SOFTWARE_VERSION from V$ASM_CLIENT;
GROUP_NUMBER INSTANCE_NAME DB_NAME CLUSTER_NAME STATUS SOFTWARE_VERSION
------------ -------------------- ---------------- -------------------- ------------------------ --------------------
1 rac1 rac oracle CONNECTED 19.0.0.0.0
2 rac1 rac oracle CONNECTED 19.0.0.0.0
3 +ASM1 +ASM oracle CONNECTED 19.0.0.0.0
3 node1 _OCR oracle CONNECTED -
-
V$ASM_ALIAS: ASM磁盤組別名
> select * from V$ASM_ALIAS;
NAME GROUP_NUMBER FILE_NUMBER FILE_INCARNATION ALIAS_INDEX ALIAS_INCARNATION PARENT_INDEX REFERENCE_INDEX AL SY CON_ID
------------------------------ ------------ ----------- ---------------- ----------- ----------------- ------------ --------------- -- -- ----------
RAC 1 4294967295 4294967295 0 1 16777216 16777269 Y N 0
redo01.log 1 256 1095246583 53 1 16777269 33554431 N N 0