Oracle 的数据字典是开发和 DBA 常翻的“书”。里面啥都有,表结构、权限、视图、索引……都能查到,简直是数据库的百科全书。尤其是调优和排查问题时,查个V$
视图,效率直接上来了。
你没注意,X$表其实才是真正的“原材料”,但一般人访问不到,得有SYSDBA权限。嗯,没权限查会直接报ORA-02030
,别问我怎么知道的。
是熟悉的V$和 GV$视图,一个管当前实例,一个看所有实例,分布式或 RAC 下用 GV$再合适不过了。举个例子,想看固定表信息,直接查V$FIXED_TABLE
,它其实就是GV$FIXED_TABLE
加个where inst_id = USERENV('Instance')
而已。
再深一层,Oracle 还贴心地搞了V_$视图和同义词,平时用的V$SESSION
其实是个同义词,底层就是V_$SESSION
。这么设计挺方便,不用每次都记那么长的名字。
应用场景也不少,像是数据库调优,靠数据字典发现哪个表全表扫太频繁;再比如查权限分配,也能从DBA_TAB_PRIVS
这些视图里搞定。
想系统研究,可以看看这个文章资源库,里面还挺全的:Oracle 数据字典视图、Oracle 数据字典解析 这些都能帮上忙。
如果你经常和 Oracle 数据库打交道,数据字典真值得好好研究一下,查得顺手,问题也快。