在Oracle 10g以后,RowID 这个SQL提示就被废弃了.搜索Google也找不到替代方案.
在一些应用场景里面利用RowID存取路径,还是很有帮助的. 比如回改, 就是在用户界面显示用户感兴趣的数据,数据被修改以后,再更新回数据库.
那么怎样强制优化器使用存取路径TABLE ACCESS BY ROWID呢? 我暂时发现了两种方法:
1) 使用No_Index SQL提示
2) 使用表达式或者运算符禁止索引扫描.
关于具体的搭建测试环境和演示, 参考文章NO_INDEX hint and deprecated ROWID hint.
测试结果
--
当查询优化器采用TABLE ACCESS BY USER ROWID存取路径时,我们发现逻辑读(Buffer列)由2降到1.
Tuesday, March 31, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment