1
我正在尝试使用sqoop从Oracle 11g数据库中提取数据。 我没有PL/SQL背景。我必须根据某个recordType和starttime过滤一个大表上的记录,然后在另一个表上为相同的启动时间进行联接(表2中的所有记录与从table1过滤的记录类型相同)。 有人可以帮我解释哪些查询会消耗更少的流程,为什么?哪些更优化?
也将基于starttime(基于连接条件或将仍然解析整个表)过滤表2上的记录的联接,或者我需要添加另一个相同的过滤条件?
QUERY1:
Select t2.field1, t2.field2 ..... t1.some_field
FROM table1 t1
INNER JOIN table2 t2 ON
(
t1.field3='certain value' AND
t1.END_TIME >= TO_DATE('20160428 16','YYYYMMDD HH24') AND t1.END_TIME < TO_DATE('20160428 17','YYYYMMDD HH24') AND t1.START_TIME = t2.START_TIME AND
t1.field2=t2.field7)
WHERE $CONDITIONS
QUERY2:
Select t2.field1, t2.field2 ..... t1.some_field
FROM table1 t1
INNER JOIN table2 t2 ON
(t1.START_TIME = t2.START_TIME AND
t1.field2 = t2.field7)
WHERE
t1.field3 = 'certain value' AND t1.END_TIME >= TO_DATE('20160428 16','YYYYMMDD HH24') AND t1.END_TIME < TO_DATE('20160428 17','YYYYMMDD HH24') AND
$CONDITIONS
嗨庇护所,我做了改变 –