解析Oracle 8i/9i的计划稳定性
2006-08-05 11:58:19 来源:WEB开发网. 启动一个新的session,并且告诉Oracle在看到匹配的SQL时,开始使用新的存储概要,而不是使用通常的优化方法来执行;然后重新运行该过程。
我们必须停止和启动新的session来确保pl/sql缓冲中的游标(cursors)并不是保持打开的。存储概要只在一个游标被分析的时候产生和(或)应用,因此我们必须要确认以前存在的类似游标是关闭的。
启动一个session并且执行以下的命令:
alter session set create_stored_outlines = demo;
然后运行一小段匿名的代码块来执行该过程,例如:
declare
m_value varchar2(10);
begin
get_value(1, 1, m_value);
end;
/
然后停止收集执行的路径(否则以下你执行的一些SQL也会放到存储概要的表格中,令接下来的处理有点困难)。
alter session set create_stored_outlines = false;
要看到这样做的结果,我们可以查询以下视图来看清Oracle为我们创建和存储的概要细节。。
select name, category, used, sql_text
from user_outines
where category = 'DEMO';
NAME CATEGORY USED
------------------------------ ------------------------------ -------
SQL_TEXT
------------------------------------------------------------------------------
SYS_OUTLINE_020503165427311 DEMO UNUSED
SELECT V1 FROM SO_DEMO WHERE N1 = :b1 AND N2 = :b2
select name, stage, hint
from user_outline_hints
where name = ' SYS_OUTLINE_020503165427311';
NAME STAGE HINT
------------------------------ ---------- ------------------------------
SYS_OUTLINE_020503165427311 3 NO_EXPAND
SYS_OUTLINE_020503165427311 3 ORDERED
SYS_OUTLINE_020503165427311 3 NO_FACT(SO_DEMO)
SYS_OUTLINE_020503165427311 3 FULL(SO_DEMO)
SYS_OUTLINE_020503165427311 2 NOREWRITE
SYS_OUTLINE_020503165427311 1 NOREWRITE
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接