Ich versuche, Daten aus einer Oracle 11g-Datenbank mit sqoop zu ziehen. Ich habe keinen PL/SQL-Hintergrund. Ich muss Datensätze auf einer großen Tabelle basierend auf bestimmten RecordType und Startzeit filtern und dann eine Verknüpfung in einer anderen Tabelle für die gleiche Startzeit (alle Datensätze in der Tabelle zwei haben den gleichen Datensatztyp wie aus Table1 gefiltert). Kann mir bitte jemand helfen und erklären, welche der Abfragen weniger Prozesse verbrauchen und warum?Welche davon ist optimiert?
Auch die Join-Filterung für die Filterung von Datensätzen in Tabelle2 basierend auf Startzeit (basierend auf Join-Bedingung oder wird noch die gesamte Tabelle analysieren) oder muss ich eine weitere Filterbedingung für die gleiche hinzufügen?
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
Hallo Shelter, ich habe die Änderung vorgenommen –