WEB开发网
开发学院数据库Oracle 解析Oracle 8i/9i的计划稳定性 阅读

解析Oracle 8i/9i的计划稳定性

 2006-08-05 11:58:19 来源:WEB开发网   
核心提示: 这样就显式地在我们的demo分类中创建了一个名字为so_fix的存储概要,我们可以通过name='SO_FIX'这个条件来重新查询user_outlines和user_outline_hints,解析Oracle 8i/9i的计划稳定性(5),查看一下存储概要是怎样的,NA

这样就显式地在我们的demo分类中创建了一个名字为so_fix的存储概要。我们可以通过name='SO_FIX'这个条件来重新查询user_outlines和user_outline_hints,查看一下存储概要是怎样的。

NAME CATEGORY USED
------------------------------ ------------------------------ ---------
SQL_TEXT
---------------------------------------------------------------------------
SO_FIX DEMO UNUSED
select /*+ and_equal(so_demo, sd_i1, sd_i2) */ v1
from so_demo
where n1 = 1
and n2 = 2
NAME STAGE HINT
------------------------------ ---------- --------------------------------
SO_FIX 3 NO_EXPAND
SO_FIX 3 ORDERED
SO_FIX 3 NO_FACT(SO_DEMO)
SO_FIX 3 AND_EQUAL(SO_DEMO SD_I1 SD_I2)
SO_FIX 2 NOREWRITE
SO_FIX 1 NOREWRITE

要注意到的是FULL(SO_DEMO)那一行已经被AND_EQUAL(SO_DEMO SD_I1 SD_I2)替换了,这是我们想要看到的。

现在我们必须将两个存储概要"替换"过来。我们想Oracle在看到以前的语句时使用新的hint列表;要做到这一点,我们必须做一些欺骗。user_outlines和user_outline_hints视图是由两个表格产生的(分别是ol$和ol$hints),它们由outln模式拥有,我们必须直接修改这些表格;这意味着要使用outln连接数据库,并且使用一个有权限的帐号来更新表格。

幸运的是,outln表格并没有任何引用的完整性限制。便利的是,ol$ (outlines)和ol$hints (hints) 表格间的关系是由概要的名字定义的(存储在ol_name列中)。因此,仔细检查名字,我们就可以通过交换ol$hints表上的名字交换存储概要的提示:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:解析 Oracle 计划

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接