SQL/ Access Problem

errjulee

Neuling
Thread Starter
Mitglied seit
11.06.2009
Beiträge
136
Ort
i de schwiiz
Hallo Zusammen,

Ich hab zur Zeit ein kleines Query Problem im Access (ca. 1 mio datensätze).
Da es Teils um kompliziertere Abfragen geht, bin ich noch froh den Designer von MS Access benutzen zu können (logisch/ nicht technisch kompliziert).
Ich stosse dabei auf ein allgegenwärtiges Problem der Performance des "not in" befehls, der nahezu unbrauchbar ist, falls dieser sich auf eine andere Abfrage (nicht Tabelle) bezieht. Obwohl beide Abfragen alleine nur etwa 20s brauchen, verbunden mit Not in werden daraus 20min!

Also den einfachen Task
Select Product, Price
from query1
where product not in
(select product from query 2 where..)

Richtiges Resultat, schlechte Ausführung. Kennt da jemand eine Alternative? Ein Join ist leider auch nicht viel schneller, hab gedacht evtl. not exists? Kennt jemand die existiert() syntax (wird im feld verwendet) von MS Access Designer?
Hab die Beschreibung nicht ganz gecheckt:
Erstellen einer Unterabfrage (ADP) - Access - Office.com --> ist ja nach denen im Kriterium Feld, wie man dann 2 var's vergelciht ist mir nicht ganz klar... aufgrund der vielen Bedingungen in der Abfrage möcht ich nicht gern direkt im SQL Befehlen rumpfuschen, wäre ziemlich mühsam...

Danke für Hilfen

Beste Grüsse
errjulee
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Access ist keine Datenbank. Das muss man einfach akzeptieren. Wenn du da wirklich solche Datenmengen hast, dann nimm besser eine MySQL, MSSQL, Oracle oder sonst eine vergleichbare Datenbank. Die würden das gleiche SQL Statement erheblich schneller verarbeiten.
 
Grundsätzlich gebe ich dir Recht, allerdings arbeitet man leider mit gewissen restriktionen der it .. mir steht leider nicht zu andere programme zu installieren und ich bleibe auf access beschränkt, v.a. weil die benutzung von sql eh nicht very common ist im umfeld.

Auch wenn mysql hier schneller wäre - Das Grundsatzproblem bleibt dabei aber bestehen: Gefühlt denke ich, er führt für jeden vergleich einer zeile die unterabfrage erneut aus - mit der ganzen kaskade. ich hab gedacht es existiert evtl. eine smoothere formulierung - da ich ja auch immmer gern lerne :).
 
Left Outer Join wäre noch eine Möglichkeit allerdings etwas zweckendfremdet. Müsste aber schneller als 20Minuten sein. Synthax bekommst du selber hin?
 
ja danke mit ein wenig überlegen und google hats geklappt :d

Select Product1, Price1
from query1
left join on product1=product2
where product 2 is null

performance: 1A!

gruss & danke
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh