Mailinglisten-Archive |
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