Mit Perl Datenbank auslesen - Dauer?
jörk
- datenbank
0 hilker0 Klaus Mock
0 Michael Schröpl
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,
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
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
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!
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
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
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
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
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