关于对象的依赖性

在对于一个表作相关的结构变化后,所依赖她的对象都将失效,
这里包括视图,过程,函数或包处于无效状态,但其定义仍被保存于数据字典内,
相关的权限信息,引用此视图的同义词,对象,及其他视图也 都会被保留。
当重新访问这些对象的时候,oracle会尝试自动编译这些对象。注意,表,序列,和同义词总是处于有效状态的。
Oracle 能够自动地跟踪数据库中发生的特定变化,并在数据字典中记录相关的方案对象的最新状态。
状态记录是一个递归的过程。引用对象的状态变化不仅会导致其直接依赖对象的状态变化,
同时会影响其间接依赖对象的状态。

下面来看一个简单的例子:

 


SQL> alter table test drop column z;

Table altered.


SQL> select status,object_name from user_objects;

 

STATUS
-------
OBJECT_NAME
--------------------------------------------------------------------------------
VALID
TMP_SES

VALID
BIN$SCF8qbynKMfgQAB/AQAMxw==$0

VALID
TEST


STATUS
-------
OBJECT_NAME
--------------------------------------------------------------------------------
INVALID
V_TEST

VALID
I_X


14 rows selected.


SQL> alter session set events '10046 trace name context forever,level 8';

Session altered.

SQL> select * from v_test;

     COUNT
----------
    100000

 

********************************************************************************

ALTER VIEW "TEST"."V_TEST" COMPILE


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.01       0.01          0          0          0           0
Execute      1      0.00       0.01          0          0          0           0
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        2      0.01       0.03          0          0          0           0

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 56     (recursive depth: 1)
********************************************************************************

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/104152/viewspace-216957/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/104152/viewspace-216957/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值