li
  当前位置:主页 > 备份恢复 > 文章内容
li
Oracle提示的优先级最高?——一次坏块处理的详细记录 (2)
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:33  
本文章共2674字,分2页,当前第2页,快速翻页:
 

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 164K| 1175M| 1985 |
| 1 | TABLE ACCESS FULL | CAT_ZONE_PRODUCT | 164K| 1175M| 1985 |
--------------------------------------------------------------------------

Note: cpu costing is off, PLAN_TABLE' is old version

9 rows selected.

SQL> ALTER SESSION SET OPTIMIZER_MODE = CHOOSE;

Session altered.

看来HINT没有起左右,可是从语法上看是没有任何问题的。难道是or的问题:

SQL> EXPLAIN PLAN FOR
2 SELECT /* ROWID(CAT_ZONE_PRODUCT) */ * FROM CAT_ZONE_PRODUCT
3 WHERE ROWID < CHARTOROWID('AAANV5AAnAAAGGBAAA')
4 ;

Explained.

SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost |
------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 84208 | 602M| 1985 |
| 1 | TABLE ACCESS BY ROWID RANGE| CAT_ZONE_PRODUCT | 84208 | 602M| 1985 |
-------------------------------------------------------------------------------

Note: cpu costing is off, PLAN_TABLE' is old version

9 rows selected.

这回结果对了,看来果然是or出的问题,不过既然HINT的优先级最高,为什么加上一个OR的条件,就导致Oracle的执行计划改变了呢,看来不是HINT优先级最高是有疑问的,就是这里出现了bug

问题找到了,剩下的就简单了,将查询语句简单变形,再次执行:

SQL> CREATE TABLE CAT_ZONE_PRODUCT_BAK AS
2 SELECT /* ROWID(CAT_ZONE_PRODUCT) */ * FROM CAT_ZONE_PRODUCT
3 WHERE ROWID < CHARTOROWID('AAANV5AAnAAAGGBAAA')
4 UNION ALL
5 SELECT /* ROWID(CAT_ZONE_PRODUCT) */ * FROM CAT_ZONE_PRODUCT
6 WHERE ROWID >= CHARTOROWID('AAANV5AAnAAAGGCAAA')
7 ;

Table created.

SQL> TRUNCATE TABLE CAT_ZONE_PRODUCT DROP STORAGE;

Table truncated.

www.ixdba.net


SQL> INSERT INTO CAT_ZONE_PRODUCT SELECT * FROM CAT_ZONE_PRODUCT_BAK;

157186 rows created.

SQL> COMMIT;

Commit complete.



阅读更多内容<<上一页 · 1 · 2


  上一篇: 备份之脱机表空间备份   下一篇: RMAN备份恢复之SPFILE的恢复(三...
li
 §相关评论  
 热点文章

·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 编辑推荐
·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 相关篇章
·备份之脱机表空间备份
·备份之全库一致性备份
·备份之联机表空间备份
·备份之控制文件备份
·备份之SUSPEND状态下备份
·备份之归档重做日志备份
·恢复之还原数据文件
·恢复之重建数据文件
·恢复之单个控制文件损坏
·恢复之丢失全部控制文件以及备份...
·RMAN备份恢复之SPFILE的恢复(三...
·Oracle数据库远程复制与异地容灾...
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决(...
·UNDO表空间的ORA-1122错误解决方...
·UNDO表空间的ORA-1122错误解决方...
·使用Flashback Query 恢复误删除...
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的东...
·怎么样创建RMAN恢复目录
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接