Chris: Array vs. Recordset

Hallo

Ich mache gerade eine Adresssuche, d.h. zuerst werden alle Strassennamen aus einer Oracle-DB gelesen und wenn dann der user eine ausgewaehlt hat, werden alle Hausnummern zu dieser Strasse aus der DB gelesen. In der Db sind ca. 30000 Eintrage.
Was ist besser und schneller, wenn ich einen Loop uebers recordset mache oder wenn ich aus dem recordset ein Array mache und den dann durchgehe?

Gruss
Chris

  1. Hallo!

    Was ist besser und schneller, wenn ich einen Loop uebers recordset mache oder wenn ich aus dem recordset ein Array mache und den dann durchgehe?

    Du hast Straßennamen und Hausnummern bereits im Recordset? Ist dann "filter" nicht angebracht?

    Beste Grüße
    Viennamade

  2. Hi,

    wir reden von ASP ohne .Net ?

    ein Recordset-Objekt hat immer mehr overhead (bezüglich Speicherverbrauch) als ein Array. Dafür hast du mit einem Recordset aber wesentlich mehr Möglichkeiten die Daten zu _benutzen_.

    Überprüfe die Selektivität deiner Abfrage:

    30000 =  1000 Strassen à  30 Hausnummern
          =   500 Strassen à  60 Hausnummern
          =   100 Strassen à 300 Hausnummern

    und berücksichtige, welche Informationen du wann anzeigen musst und wass du z.b. mit den Daten machen musst (z.b. portionsweise anzeigen, sortieren, nachträglich filtern etc)

    Wenn du aus dem RS ein Array machst, kannst du die Verbindung für das RS durch Schliessen desselbigen auch gleich wieder freigeben. Sprich, eventuelle Locks auf Datensatzebene werden schnell wieder beseitigt. Desto größer das Ergebnis (Menge Datensätze) desto größer der Overhead eines Recordsets.

    Es macht auf keinen Fall Sinn, von Anfang an 30000 Datensätze aus der DB zu holen. ;)

    Gruß, Frank

    Hallo

    Ich mache gerade eine Adresssuche, d.h. zuerst werden alle Strassennamen aus einer Oracle-DB gelesen und wenn dann der user eine ausgewaehlt hat, werden alle Hausnummern zu dieser Strasse aus der DB gelesen. In der Db sind ca. 30000 Eintrage.
    Was ist besser und schneller, wenn ich einen Loop uebers recordset mache oder wenn ich aus dem recordset ein Array mache und den dann durchgehe?

    Gruss
    Chris