Sql 驱动多个远程表的\u站点提示

Sql 驱动多个远程表的\u站点提示,sql,oracle,oracle12c,Sql,Oracle,Oracle12c,我有一个以下格式的查询。它使用两个远程表和一个本地表 SELECT * FROM table1@db2 t1 INNER JOIN table2@db2 t2 -- two large remote tables on the same DB ON t1.id = t2.id WHERE t1.prop = '1' AND t2.prop = '2' AND t1.prop2 IN (SELECT val FROM tinylocaltable) 我想知道如何正确地使用DRIVING\

我有一个以下格式的查询。它使用两个远程表和一个本地表

SELECT *
FROM table1@db2 t1 INNER JOIN table2@db2 t2 -- two large remote tables on the same DB
  ON t1.id = t2.id
WHERE t1.prop = '1'
 AND t2.prop = '2'
 AND t1.prop2 IN (SELECT val FROM tinylocaltable)
我想知道如何正确地使用
DRIVING\u站点
query提示将大部分工作推送到db2(即确保在db2上应用连接和条件)。我看到的
DRIVING\u SITE
的大多数示例仅涉及一个远程表。
SELECT/*+DRIVING\u SITE(t1)*/*
是否足够,或者我是否需要在提示中列出两个远程表(t1和t2)?如果是后者,正确的语法是什么

(如果您想知道为什么不首先在db2上执行它,那是因为这实际上是一个较大查询的
UNION ALL
部分,而其他
UNION ALL
部分使用本地数据库)

DRIVING_SITE提示指示优化器在与数据库所选站点不同的站点上执行查询

您的查询使用

FROM table1@db2 t1 INNER JOIN table2@db2 t2
如果两个表位于同一个“不同站点”,那么

应该可以(在我看来,在文档中找不到任何与此不同的建议)

SELECT /*+ DRIVING_SITE(t1)*/