phpbar.de logo

Mailinglisten-Archive

[php] Oracle / ODBC

[php] Oracle / ODBC

Florian Petter florian.petter_(at)_braintrust.at
Fri, 28 Apr 2000 10:56:05 +0200


Hallo!

Wie kann man eigentlich große Datenmengen mit Oracle verarbeiten?

Wir möchten eine DB erstellen die 100.000+ Datensätze gespeichert
hat - und die Datensätze Seitenweise ausgeben (zb. 10 Datensätze pro
Seite und dann kann man hin- und her springen).

Mit MySQL ist das kein Problem, da kann man zb. folgenden Select-
Befehl verwenden:

SELECT * FROM tabelle LIMIT 10,10
... und man bekommt schon alle Datensätze von 10 bis 20.
(Alternativ kann man auch direkt auf einen Datensatz zugreifen mit MYSQL_RESULT)

Unter Oracle muß man folgende Anweisung verwenden (es gibt kein LIMIT):

SELECT * FROM tabelle
... und dann werden natürlich alle 100.000 Datensätze in den Speicher
geladen. Und jetzt kann ich NICHT DIREKT auf die Datensätze 10 bis
20 zugreifen, sondern muß zuerst alles in ein Array schreiben. Das Problem
dabei ist nur, dass dann der Server für jede Anfrage mehrere Sekunden
100% CPU-Last hat und im Speicher benödigt man ca. 50 MB.
Sollten mehrere Anfragen gleichzeitig sein dann würde der Server sicher bald
"abstürzten".?!

Wie kann man das mit Oracle Lösen?
Es muß doch eine Möglichkeit geben mit der man eine bestimmte Anzahl von
Datensätzen bekommt (so wie Limit bei MySQL)?

Danke,
Florian


Ulf Wendel wrote:

> Florian Petter wrote:
>
> > Unter MySQL gibt es so eine ähnliche Funktion: MYSQL_DATA_SEEK
> > bzw. MYSQL_RESULT (damit kann man direkt zu einen Datensatz springen).
> > Gibt es so etwas auch für Oracle?
>
> Nein. Nur faule Workarounds mit dem Versuch die Daten zu cachen.
>
> Ulf
>
> --
> ** Durchgehend geöffnet: http://www.php-center.de **
> Die PHP-Liste: mailto:php_(at)_infosoc.uni-koeln.de
> http://infosoc.uni-koeln.de/mailman/listinfo/php



php::bar PHP Wiki   -   Listenarchive