以下查询1的速度确实很慢。
select * from my_table
where col1 in (
... multiple complicated joins ...
);
假设(多个复杂的联接)返回1,2,...,50并且运行速度很快。
... multiple complicated joins ...
通过用其输出替换联接,下面的Query2的运行速度也快得多。
select * from my_table
where col1 in (
1,2,...,50
);
是否可以将(多个复杂的联接)的输出插入到类似列表的变量中?
select * from my_table
where col1 in &col1_list;
my_table:2G表和col1未编制索引
多个复杂的联接:在1秒钟内返回大约50个值
查询1:运行时间= 5分钟
查询2:运行时间= 2秒
注意:我仅对数据库具有读取权限,因此无法创建任何临时表。
答案 0 :(得分:1)
如何加入复杂的联接。
SELECT * FROM MY_TABLE mt JOIN (... multiple complicated joins ...)temp on temp.col = mt.col1