driving_site 多个远程表的提示
driving_site hint for multiple remote tables
我有以下格式的查询。它使用两个远程 tables 和一个本地 table.
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_SITE
查询提示将大部分工作推送到 db2(即确保在 db2 上应用连接和条件)。我看到的 DRIVING_SITE
的大多数示例仅引用了一个遥控器 table。 SELECT /*+DRIVING_SITE(t1)*/ *
是否足够,或者我是否需要在提示中列出两个远程 tables(t1 和 t2)?如果是后者,正确的语法是什么?
(如果您想知道为什么一开始没有在 db2 上执行,那是因为这实际上是一个更大查询的 UNION ALL
部分,而其他 UNION ALL
部分使用本地数据库)。
The DRIVING_SITE hint instructs the optimizer to execute the query at a different site than that selected by the database
您的查询使用
FROM table1@db2 t1 INNER JOIN table2@db2 t2
两个表都在同一个 "different site" 上,所以
SELECT /*+ DRIVING_SITE(t1)*/
应该没问题(在我看来。在文档中找不到任何建议不同的内容)。
我有以下格式的查询。它使用两个远程 tables 和一个本地 table.
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_SITE
查询提示将大部分工作推送到 db2(即确保在 db2 上应用连接和条件)。我看到的 DRIVING_SITE
的大多数示例仅引用了一个遥控器 table。 SELECT /*+DRIVING_SITE(t1)*/ *
是否足够,或者我是否需要在提示中列出两个远程 tables(t1 和 t2)?如果是后者,正确的语法是什么?
(如果您想知道为什么一开始没有在 db2 上执行,那是因为这实际上是一个更大查询的 UNION ALL
部分,而其他 UNION ALL
部分使用本地数据库)。
The DRIVING_SITE hint instructs the optimizer to execute the query at a different site than that selected by the database
您的查询使用
FROM table1@db2 t1 INNER JOIN table2@db2 t2
两个表都在同一个 "different site" 上,所以
SELECT /*+ DRIVING_SITE(t1)*/
应该没问题(在我看来。在文档中找不到任何建议不同的内容)。