Hallo,
hat vielleicht jemand eine Idee, um folgendes SQL Problem zu lösen:
Wir haben eine SQL Abfrage, die per Programm generiert wird (auf Java Seite per Hibernate). Die Abfrage dauert sehr lange (ca. 5 Sekunden), obwohl nur ein paar tausend Datensätze selektiert werden.
Woran das ganze liegt, ist uns schon klar:
Das Statement hat in etwa folgende Form:
Code:
select feld1 from tabelle1
join tabelle2 on key1=key2
where tabelle2.nummer in (12345, 24575, 58713, <... 2000 weitere Werte ...>, 87548)
Das ganze geht schnell, wenn die IN-Anweisung nicht zu viele Werte beinhaltet. 20 Werte sind überhaupt kein Problem. Aber wird haben da manchmal über 2000 Werte in der IN-Klausel. Dann dauert das extrem lange.
Visual Explain und der Index Advsior konnten keine Ratschläge geben. Vielleicht hat jemand von Euch ja noch eine Idee, wie man die lange IN-Anweisung anders kodieren könnte.
Dieter
Bookmarks