jörk: Mit Perl Datenbank auslesen - Dauer?

hi,

würde es lange dauern, wenn ich über mein perl-prog eine tabelle in einer datenbank auslese. Die tabelle hätte ca. 20 Millionen zeilen und jeweils immer 13 Spalten. und ich würde ein bestimmten suchnamen eingeben. wie lange würde es dauern bis die daten gefunden wurden???

  1. hi,

    würde es lange dauern, wenn ich über mein perl-prog eine tabelle in einer datenbank auslese. Die tabelle hätte ca. 20 Millionen zeilen und jeweils immer 13 Spalten. und ich würde ein bestimmten suchnamen eingeben. wie lange würde es dauern bis die daten gefunden wurden???

    Hi!

    Das kommt ganz auf Deine Abfrage und die Größe der Ergebnismenge an.
    SELECT LIKE %% wird wesentlich länger dauern als ein eifacher SELECT auf eine index Zelle. Ich denke aber die 20.000.000 Zeilen können in wenigen  Sekunden durchsucht werden und Resultate schmeißen.

    Nochdazu kommt es nicht auf die Scriptsprache an, wie lange das dauert sondern auf die Datenbank selbst. Eine Oracle wird das sicher schneller machen als eine mySQL.

    hoffe ich konnte weiterhelfen
      mfG Markus

    1. Hallo,

      würde es lange dauern, wenn ich über mein perl-prog eine tabelle in einer datenbank auslese. Die tabelle hätte ca. 20 Millionen zeilen und jeweils immer 13 Spalten. und ich würde ein bestimmten suchnamen eingeben. wie lange würde es dauern bis die daten gefunden wurden???

      Das kommt ganz auf Deine Abfrage und die Größe der Ergebnismenge an.
      SELECT LIKE %% wird wesentlich länger dauern als ein eifacher SELECT auf eine index Zelle. Ich denke aber die 20.000.000 Zeilen können in wenigen  Sekunden durchsucht werden und Resultate schmeißen.

      Das hängt auch noch von vielen anderen Faktoren ab. Das verwendete DBMS, der Zustand der Datenbank (Indizes, Fragmentierung der daten usw.), die verwendete Maschine für den Server usw.

      Eine Oracle wird das sicher schneller machen als eine mySQL.

      Es ist ein Irrglaube, dass Oracle eine schnelle Datenbank ist. DIe Vorteile von Oracle gegenüber (sagen wir mal) mySQL liegen auf ganz anderen Gebieten wie etwa der Anwendungsentwicklung unter Oracle, Stored procedures, Subselects (um nur einiges zu nennen).

      Grüße
        Klaus

      1. Hi!

        Das hängt auch noch von vielen anderen Faktoren ab. Das verwendete DBMS, der Zustand der Datenbank (Indizes, Fragmentierung der daten usw.), die verwendete Maschine für den Server usw.

        Ja, sicher... aber es sollte jedem klar sein, das eine DB die auf einem Pentium 50 läuft nicht so fix ist wie eine auf 'nem dual P4 3000+ oder so.

        Eine Oracle wird das sicher schneller machen als eine mySQL.

        Es ist ein Irrglaube, dass Oracle eine schnelle Datenbank ist. DIe Vorteile von Oracle gegenüber (sagen wir mal) mySQL liegen auf ganz anderen Gebieten wie etwa der Anwendungsentwicklung unter Oracle, Stored procedures, Subselects (um nur einiges zu nennen).

        ja... mal wieder was dazu gelernt... Danke Klaus!

        mfG!

      2. Hallo,

        Es ist ein Irrglaube, dass Oracle eine schnelle Datenbank ist. DIe Vorteile von Oracle gegenüber (sagen wir mal) mySQL liegen auf ganz anderen Gebieten wie etwa der Anwendungsentwicklung unter Oracle, Stored procedures, Subselects (um nur einiges zu nennen).

        Es ist ein Irglaube, dass das auslagern vieler häufig benötigter Abfragen in den RAM diese Datenbank nicht schneller macht. Und genau dieses Verhalten, was andere DB`s zwar auch können nur nicht so gut, zeichnet eine Oracle DB im besonderen aus.

        Gruss Matze

        1. Hi MatzeA,

          Es ist ein Irglaube, dass das auslagern vieler häufig benötigter Abfragen in den RAM diese Datenbank nicht schneller macht. Und genau dieses Verhalten, was andere DB`s zwar auch können nur nicht so gut, zeichnet eine Oracle DB im besonderen aus.

          kein RDBMS hat so viel KI, wie ein guter Datenbankadministrator auch schon aus einer durchschnittlichen Datenbank herausholen kann. Auch mySQL kann "kostbare" Objekte in den Arbeitsspeicher legen - man muß halt wissen, was man tut.

          Viele Grüße
                Michael

          --
          T'Pol: I apologize if I acted inappropriately.
          V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
          (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
          Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
  2. Hi jörk,

    würde es lange dauern, wenn ich über mein perl-prog eine tabelle in einer datenbank auslese.

    das kommt u. a. auf die Definition Deiner Tabelle, eventueller Indexe und Deiner SQL-Query an.
    Man kann so etwas um mehrere Zehnerpotenzen unterschiedlich geschickt anfangen ...

    Ach ja: Mit Perl hat Dein Problem praktisch nichts zu tun.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
    1. Hallo,

      Ach ja: Mit Perl hat Dein Problem praktisch nichts zu tun.

      Naja, mir könnten da schon einige Dinge einfallen, um das Ganze durch ungeschickte Programmierung in Perl unperformant zu gestalten. GErade wenn man mit wirklich großen Datenmengen zu tun hat, können Hashes beispielsweise auch ganz schön auf die Ressourcen (und indirekt damit auf die Ausführungsgeschwindigkeit) losgehen. Und das unabhängig davon, die die Datenbank organisiert ist.

      Grüße
        Klaus

      1. Hi Klaus,

        Ach ja: Mit Perl hat Dein Problem praktisch nichts zu tun.
        Naja, mir könnten da schon einige Dinge einfallen, um das Ganze durch ungeschickte Programmierung in Perl unperformant zu gestalten. GErade wenn man mit wirklich großen Datenmengen zu tun hat, können Hashes beispielsweise auch ganz schön auf die Ressourcen (und indirekt damit auf die Ausführungsgeschwindigkeit) losgehen. Und das unabhängig davon, die die Datenbank organisiert ist.

        dann wären wir aber schon nicht mehr beim Auslesen der Daten, sondern bei deren Verarbeitung. Und die Vorgabe klang für mich nicht so, als würde ein signifikanter Teil der Datenbanktabelle tatsächlich in die 3GL übertragen werden.

        Daß man in nachgeschalteten Schritten natürlich auch in Perl Unfug treiben kann, möchte ich keineswegs in Abrede stellen...

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.