2016-11-11 3 views
0

Ich versuche, ein Reinigungs Skript zu erstellen, die alle nicht verwendeten Beschreibungen bereinigen wird: Meine Abfrage wie folgt aussieht:Oracle nach links nicht in ersetzen beitreten

DELETE FROM DESCRIPCIONES WHERE ID_DESCRIPCION NOT IN 
(SELECT ID_NOMBRE FROM CUESTIONARIOS 
UNION 
SELECT ID_DESCRIPCION FROM CUESTIONARIOS 
UNION 
SELECT ID_NOMBRE FROM PLANTILLAS 
.... 
) 

i in dieser Abfrage viel mehr UNIONs Auch haben. Aus diesem Grund benötigt diese Abfrage zu viel Zeit. Gibt es eine Möglichkeit, diese Abfrage durch schnellere LEFT JOIN zu ersetzen und Verschachtelung Abfrage zu vermeiden. PD: Oracle 11g

Dank

+2

Was ist der Deal mit SQL-Fragen und schreien Titel? – Biffen

+0

Haben Sie Ihre Frage nicht bekommen ... –

+2

Sie würden einige Leistung profitieren, indem Sie alle diese Gewerkschaften mit Union alle ersetzen – Boneist

Antwort

0

Schließlich verwendet i nächste Abfrage:

DELETE FROM DESCRIPCIONES WHERE ID_DESCRIPCION NOT IN 
(SELECT ID_NOMBRE FROM CUESTIONARIOS 
UNION ALL 
SELECT ID_DESCRIPCION FROM CUESTIONARIOS 
UNION ALL 
SELECT ID_NOMBRE FROM PLANTILLAS 
.... 
) 

und haben eine enorme Leistungssteigerung dank alle haben!