phpbar.de logo

Mailinglisten-Archive

[php] (no subject)

[php] (no subject)

Florian Clever clever_(at)_aracnet.com
Fri, 28 Apr 2000 08:18:54 -0700


This is a multi-part message in MIME format.

------=_NextPart_000_007B_01BFB0EA.64AB7FA0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

> Unter Oracle mu=DF man folgende Anweisung verwenden (es gibt kein =
LIMIT):
>=20
> SELECT * FROM tabelle
> ... und dann werden nat=FCrlich alle 100.000 Datens=E4tze in den =
Speicher
> geladen. Und jetzt kann ich NICHT DIREKT auf die Datens=E4tze 10 bis
> 20 zugreifen, sondern mu=DF zuerst alles in ein Array schreiben. Das =
Problem
> dabei ist nur, dass dann der Server f=FCr jede Anfrage mehrere =
Sekunden
> 100% CPU-Last hat und im Speicher ben=F6digt man ca. 50 MB.
> Sollten mehrere Anfragen gleichzeitig sein dann w=FCrde der Server =
sicher bald
> "abst=FCrzten".?!
>=20
> Wie kann man das mit Oracle L=F6sen?
> Es mu=DF doch eine M=F6glichkeit geben mit der man eine bestimmte =
Anzahl von
> Datens=E4tzen bekommt (so wie Limit bei MySQL)?

Dieses wurde bereits auf der En Liste diskutiert mit folgendem Ergebnis:
SELECT * FROM ( SELECT spalte1, spalte2, ROWNUM AS spaltennr FROM tab =
WHERE x=3Dy ORDER BY spalte) WHERE spaltennr>10 AND ROWNUM<20;

Florian


------=_NextPart_000_007B_01BFB0EA.64AB7FA0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>&gt; Unter Oracle mu=DF man folgende =
Anweisung=20
verwenden (es gibt kein LIMIT):<BR>&gt; <BR>&gt; SELECT * FROM =
tabelle<BR>&gt;=20
... und dann werden nat=FCrlich alle 100.000 Datens=E4tze in den =
Speicher<BR>&gt;=20
geladen. Und jetzt kann ich NICHT DIREKT auf die Datens=E4tze 10 =
bis<BR>&gt; 20=20
zugreifen, sondern mu=DF zuerst alles in ein Array schreiben. Das =
Problem<BR>&gt;=20
dabei ist nur, dass dann der Server f=FCr jede Anfrage mehrere =
Sekunden<BR>&gt;=20
100% CPU-Last hat und im Speicher ben=F6digt man ca. 50 MB.<BR>&gt; =
Sollten=20
mehrere Anfragen gleichzeitig sein dann w=FCrde der Server sicher =
bald<BR>&gt;=20
"abst=FCrzten".?!<BR>&gt; <BR>&gt; Wie kann man das mit Oracle =
L=F6sen?<BR>&gt; Es=20
mu=DF doch eine M=F6glichkeit geben mit der man eine bestimmte Anzahl =
von<BR>&gt;=20
Datens=E4tzen bekommt (so wie Limit bei MySQL)?<BR><BR>Dieses wurde =
bereits auf=20
der En Liste diskutiert mit folgendem Ergebnis:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>SELECT * FROM ( SELECT&nbsp;spalte1, =
spalte2,=20
ROWNUM AS spaltennr FROM tab WHERE x=3Dy ORDER BY spalte) WHERE =
spaltennr&gt;10=20
AND ROWNUM&lt;20;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Florian</FONT></DIV>
<DIV>&nbsp;</DIV></BODY></HTML>

------=_NextPart_000_007B_01BFB0EA.64AB7FA0--



php::bar PHP Wiki   -   Listenarchive