请问我的一个查询语句是要丛dblink查询几个表,driving_site中包含多个表的语法是怎么样的?比如:select /*+driving_site(table1,table2,table3)*/
table1.column,table2.column,table3.column...
from table1@dblink table1
,table2@dblink table2
,table3@dblink table3
where ...
table1.column,table2.column,table3.column...
from table1@dblink table1
,table2@dblink table2
,table3@dblink table3
where ...
解决方案 »
- 求数据同步的解决方案
- 本地访问服务器上的oracle
- 一个菜单表中有菜单的ID,另外还有个其父菜单ID
- (在线等)在vista上安装oracl 10g(针对vista的版本)过程中出现了找遍google也解决不了的难题
- oracle 用户登入外部认证
- 紧急求助:访问系统对象非常慢
- 想要在存储过程中返回一个带参数的游标,不知道应该怎么写。请大家指教。
- 求大神帮忙写个SQL语句啊 急用 谢谢
- 急急,windows server 2003下,oracle 9i的OracleOraHome92ManagementServer服务启动后又停止了。
- order by 与group by如何使用?
- 急! 急!!!!!!!!1
- oracledbconsole服务启动后处于“启动”状态(oracle 10g)
替换成/*+ remote_mapped(dblink) */
好些呢?
对于那些存在远程的SQL,ORACLE可以有两种选择:
1,在远端执行SQL
2,在本地执行SQL
至于如果选择SQL的执行地点呢,这完全是由SQL决定的,看在哪端执行的COST低就在哪端执行。但是ORACLE并不总是那么聪明,所以有的时候需要我们自己觉得SQL在哪端执行。我们可以driving_site这个HINT来决定SQL的执行。
看下面的SQL:SELECT /*+driving_site(a)*/
a.column_1,
b.column_2
FROM table_1@dl_remote a,
table_2 b
WHERE a.column_1 = b.column;由于table_1是远端的表,在/*+driving_site(a)*/提示的影响下,oracle会把表table_2发送到dl_remote所指的远端,
然后在远端进行连接,最后把执行的结果在返回给本地。SELECT /*+driving_site(b)*/
a.column_1,
b.column_2
FROM table_1@dl_remote a,
table_2 b
WHERE a.column_1 = b.column;由于table_2是本地的表,在/*+driving_site(b)*/提示的影响下,oracle会把表table_1的数据取到本地,
然后在本地进行连接,最后把执行的结果在返回。如果表table_1和table_2的记录数相差很多的话,选择合适的执行端就显得极其重要了。