我知道PUBLIC_DEPENDENCY只有对象和引用 ID,而DBA_DEPENDENCIES没有 ID,但有类型、所有者、名称等。
但除此之外,两者之间有什么区别?当我对我的数据库进行计数时,它们返回不同的值。而PUBLIC_DEPENDENCY有更多的元素。
我知道PUBLIC_DEPENDENCY只有对象和引用 ID,而DBA_DEPENDENCIES没有 ID,但有类型、所有者、名称等。
但除此之外,两者之间有什么区别?当我对我的数据库进行计数时,它们返回不同的值。而PUBLIC_DEPENDENCY有更多的元素。
检查两个视图的来源:
PUBLIC_DEPENDENCY
直接从字典表查询,仅此dependency$
而已。DBA_DEPENDENCIES
也查询dependency$
,但也加入一些其他表和视图,例如disk_and_fixed_objects
。此视图不包含来自 的所有对象,因此此连接从与缺失对象相关的dependency$
行中删除了一些行。dependency$
例如在我的数据库中:的来源
disk_and_fixed_objects
是:但是上面的13个对象在上面的下划线视图或者X$表中并没有占,它们在另一个X$表中(
X$KQFDT
):KQFDTNAM
在这里您可以在列中看到这些对象的名称。另一种找到它们的方法是查询V$FIXED_TABLE
视图:总结一下:
DBA_DEPENDENCIES
不包含一些固定对象相关的依赖。您还可以检查哪些对象与这些“缺失”依赖项相关,例如: