Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: SQL optimieren

  Alt 24. Mai 2013, 06:50
Jens, meine Antwort unter Deiner war mißverständlich, aber Du warst schon gemeint. Hach ich bin eben etwas ruppig, manchmal. Und kann nicht richtig lesen. Ich hab deine Ausführungen noch nicht einmal richtig gelesen, aber schon verteufelt.

Aber bei mir funktioniert dein Vorschlag nicht. Ich habe zwar nur einen SQL-Server (TM von MS), aber dieses Skript geht nicht:
SQL-Code:
--- Temporäre Tabellen anlegen
select 1 as ID1, 1 as ID2 into #A
union select 1,2
union select 1,3
union select 2,1
union select 2,2

select 1 as ID1, 1 as ID2 into #B
union select 1,2
union select 1,3
union select 2,1
union select 2,3

--- Vorschlag #1 (funktioniert)
select *
from #A a
     left join #B b
       on a.ID1=b.ID1
      and a.ID2=b.ID2
where b.ID2 is null

--- Vorschlag #2 (deiner?)
Select *
from #A a
  left join #B b
    on a.ID1=b.ID1
   and b.ID2 is null
where b.ID2 is null
Wenn man nicht weiter weiß (bei Performanceproblemen) hilft mir manchmal, einfach einen anderen ansatz zu nehmen.
Code:
select * from Tabelle1
where not exists (
  select * from Tabelle2 
   where Tabelle1.Feld1=Tabelle2.Feld1 
     and Tabelle1.Feld2=Tabelle2.Feld2
   )
Das kann zum identischen Queryplan führen, oder etwas komplett anderes bewirken. Wichtig hier scheint mir, einen kombinierten Index auf Tabelle2 (Feld1+Feld2) zu haben, oder?

Geändert von Furtbichler (24. Mai 2013 um 06:52 Uhr)
  Mit Zitat antworten Zitat