Sono curioso del modo più efficiente per eseguire query sull'esclusione su sql. Per esempio. Ci sono 2 tabelle (tabella A e tabella B) che possono essere unite su 1 colonna (col1). Voglio visualizzare i dati della tabellaA per tutte le righe che col1 non esiste nella tabellaB.SQL: confronto delle prestazioni per esclusione (Join vs Not in)
(Quindi, in altre parole, tableB contiene un sottoinsieme di col1 di tableA. E voglio visualizzare tableA, senza i dati che esiste in tableB)
Diciamo tableB ha 100 righe mentre tableA è gigantesco (più di 1 milione di righe). So che 'Non in (non esiste)' può essere usato ma forse ci sono modi più efficienti (meno tempo comp.) Per farlo. Io non forse con outer join?
I frammenti di codice e i commenti sono molto apprezzati.
Che tipo di DBMS? SQL Server, MySQL, Oracle? Le funzionalità degli ottimizzatori di query in queste differenze. –
Oracle. Sarò sorpreso se ci sono differenze di prestazioni significative rispetto a vari DBMS. – someone
Sì, sarete sorpresi. :) – Unreason