2019-07-20
关于12c中DRIVING_SITE hint在有dml操作的语句中失效的问题。
目前有一个需求是,本地的一张小表a与通过dblink关联远程读库的一张大表b(100G左右),然后返回查询结果插入到本地另一张表c内。
我做的测试如下:
1、使用select /*+DRIVING_SITE(b)*/ * from a,b@dbl...... 将a传到远程关联完了再返回来,这样看执行计划是可以的,而且执行速度也能接受,环境很麻烦,执行计划不好拿,我确定肯定是生效了,但是insert into select /*+DRIVING_SITE(b)*/ * from a,b@dbl...... 的时候看执行计划hint就不生效了还是把大表拿到本地了,执行时间也很长,大约要1个小时了,我想问下dring_site是不支持dml操作吗,因为我在官方文档上也没有明确看见有说明这问题的。
2、因为上面不好使,我想给select 放试图里面然后insert从这试图查询,同样看执行计划也是该hint失效。
3、请问就在此需求基础上,两表跨库关联还有是什么解决思路没有,dblink这是肯定给用了,不好使也没辙,同步数据软件工具不考虑,而且必须考虑的是在ADG读库上关联,尝试过在读库上建全局临时表可以写入,但是又不好控制事务,还有dblink还给手动关的问题。求助。。奇葩需求我也很头疼,欢迎吐糟。。。
收藏
分享
4条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

评论
