ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于对象的依赖性

关于对象的依赖性

原创 Linux操作系统 作者:cc59 时间:2008-03-23 02:26:35 0 删除 编辑

在对于一个表作相关的结构变化后,所依赖她的对象都将失效,
这里包括视图,过程,函数或包处于无效状态,但其定义仍被保存于数据字典内,
相关的权限信息,引用此视图的同义词,对象,及其他视图也 都会被保留。
当重新访问这些对象的时候,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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-21

  • 博文量
    132
  • 访问量
    286098