effizientes Filtern aus großer Tabelle bei rein lesendem DB-Zugriff [gelöst]

  • SQL

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    effizientes Filtern aus großer Tabelle bei rein lesendem DB-Zugriff [gelöst]

    Hallo zusammen.

    Als SQL-Anfänger habe ich folgende Situation. Ich habe in unserem Betrieb eine fremde Datenbank* (SQL-Anbieter (MySQL, MSSQL, Oracle, …) weiß ich noch nicht), in der es (u.a.) eine kleine und eine große Tabelle gibt. Aus der kleinen kann ich IDs meiner 3000 erwünschten Einträge rausfischen. Das geht fix (ca. 0,3 Sekunden). Jetzt brauch ich aber Zusatzdaten, die in einer großen Tabelle drinstecken.

    Meine bescheidenen Ansätze waren:
    1. Alle Daten holen mit

    SQL-Abfrage

    1. SELECT AllDieDatenDieIchAusDerGroßenTabelleBrauche FROM GroßeTabelle
    Und diese dann filtern. Für ca. 1,5 Millionen Einträge dauert das mehr als ne Minute, nur, um mir danach davon 3000 Einträge rauszufischen.

    2. eine For-Each-Schleife durchlaufen lassen und dann in jedem Schleifendurchgang die Daten für den Eintrag gezielt holen mit

    SQL-Abfrage

    1. SELECT AllDieDatenDieIchAusDerGroßenTabelleBrauche FROM GroßeTabelle WHERE ID='HierDieIdDesEintragsAusDemAktuellenForSchleifenDurchgang'
    was dazu führt, dass ich 3000 SQL-Anfragen an die DB schicke. Dauert auch ewig.

    Auch kann ich die Großtabelle nicht durch ein vorhandenes Zusatzkriterium / eine andere Spalte vorfiltern, dass also schon viele uninteressante Einträge vorab wegfallen.

    Nun die Frage: Wie geht das effizienter/schneller?

    * Die DB hält unseren Betrieb aufrecht und es kann extrem teuer werden, wenn ich da was zerschieße, daher wage ich es nicht, irgendwelche schreibenden Anfragen zu schicken inkl. Zwischentabellen anzulegen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    :D Danke, das war's. So schnell kann's gehen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.