关于SQL Devloper。假设我有三个表Table1,Table2和Table3。当我在查询下面运行时
select * from Table1 where coustomer_id in (select custmoer_id from Table2 where city='Pune');
以上查询在不到2秒的时间内获取结果。 但是当我尝试从两个以上的表中获取信息时,需要花费太多时间。例如:
select * from Table3 where building_name in (select building_name from Table1 where customer_id in (select customer_id from Table2 where city='Pune'));
因此,在这种情况下,与上述查询相比,它需要更多时间。 为什么需要这么多时间,有没有解决方案?
答案 0 :(得分:2)
没有看到你桌子的结构就无法确定(并且不清楚“更多时间”意味着什么)。但最可能的原因是:
Table3
在building_name
上没有索引。Table3
中的记录多于Table1
。Table3
的列数多于Table1
。