Mailinglisten-Archive |
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>> Unter Oracle mu=DF man folgende = Anweisung=20 verwenden (es gibt kein LIMIT):<BR>> <BR>> SELECT * FROM = tabelle<BR>>=20 ... und dann werden nat=FCrlich alle 100.000 Datens=E4tze in den = Speicher<BR>>=20 geladen. Und jetzt kann ich NICHT DIREKT auf die Datens=E4tze 10 = bis<BR>> 20=20 zugreifen, sondern mu=DF zuerst alles in ein Array schreiben. Das = Problem<BR>>=20 dabei ist nur, dass dann der Server f=FCr jede Anfrage mehrere = Sekunden<BR>>=20 100% CPU-Last hat und im Speicher ben=F6digt man ca. 50 MB.<BR>> = Sollten=20 mehrere Anfragen gleichzeitig sein dann w=FCrde der Server sicher = bald<BR>>=20 "abst=FCrzten".?!<BR>> <BR>> Wie kann man das mit Oracle = L=F6sen?<BR>> Es=20 mu=DF doch eine M=F6glichkeit geben mit der man eine bestimmte Anzahl = von<BR>>=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 spalte1, = spalte2,=20 ROWNUM AS spaltennr FROM tab WHERE x=3Dy ORDER BY spalte) WHERE = spaltennr>10=20 AND ROWNUM<20;</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Florian</FONT></DIV> <DIV> </DIV></BODY></HTML> ------=_NextPart_000_007B_01BFB0EA.64AB7FA0--
php::bar PHP Wiki - Listenarchive