sql使用了database link,但是执行时遇到:远程操作符执行失败,select * 没问题,
select count(0) 就报错,
说明可能使用数据库链遇到问题。可以尝试修改参数 dblink_opt_flag 为0
-
参数名:dblink_opt_flag
-
缺省值:509
-
属性:动态,会话级
-
说明:控制对 dblink 的优化。
-
-
0:不进行优化;
-
1:允许 dblink 整体优化,采用原始方式;
-
2:dblink 局部优化,采用老方式;
-
4:dblink 局部优化,采用新方式;
-
8:异构数据库情况下进行兼容性检查,根据表达式类型检查是否可以在异构数据库执行,如果不支持,则不对此表达式进行进行收集;
-
16:采用新方式局部优化时,考虑视图、派生表、子查询、查询表达式是否可以整体优化;
-
32:采用新方式局部优化时,支持外连接 where 过滤条件的优化;
-
64:支持 member_access 转换为变量的优化方式;
-
128:增删改支持新方式优化;
-
256:计划生成阶段增加 dblink 优化,支持连接条件转换为变量的优化方式,并对 dblink 存在过滤条件的场景进行优化;
-
512:支持物化视图明细表是基于 dm 到异构数据库 dblink 的远程表。
-
-
支持使用上述有效值的组合值,如 61 表示同时进行 1、4、8、16、32 的优化。取值 16 和 32只有和取值 4 组合才有意义。
猜测 509=1 4 8 16 32 64 128 256,没有采用2 和 512这两种方式优化link。
参考:
《dm8系统管理员手册.pdf》
阅读(356) | 评论(0) | 转发(0) |