现场和问题:
A:p690 aix5l oracle9.2.0.5 rac rbo 上级单位 数据库不能随便改变优化模式
B:p690 aix5l oracle9.2.0.5 rac rbo 数据库不能随便改变优化模式,应用程序也不能做改动
C:p630 主要做测试用的 oracle8.1.7.4 rbo
B上通过database link建了一个视图view_b访问A上的一个大表table_a.
在B上使用如下语句:
select 字段列表 from view_b where sfzh= :a or sfzh=:b 其中sfzh上已经有索引.
很慢,需要6分钟,显然是走了全表扫描.
解决办法:
由于限制较多,所以解决方法也比较变态.
1)在C上通过database link建了一个视图view_c访问B上的一个大表view_b.
2)在B上通过database link建了一个视图view_new访问C上的一个大表view_c.
sql语句执行是毫秒级.
结论:由于数据库没有使用cbo,导致很多情况下优化器走了错误的执行路径. 换个版本也许能够解决问题.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/936/viewspace-60664/,如需转载,请注明出处,否则将追究法律责任。