Re: Adapter.Fill



Hallo Peter,

stimmt, subquery ist irreführend. Aber was meinst Du mit dem vorangestellten
Semikolon? Wenn es sich um einen Anweisungsstapel handelt muß die
vorhergehende Anweisung mit einem Semilkolon enden?

Mit DB-Server = Client = Webserver meine ich die einfach Situation, das auf
einem Rechner, der ein Webserver ist, neben der Webserversoftware auch die
DB-Server-Software läuft und die Anwendung, die auf dem Webserver läuft, ist
der Client des DB-Servers.

Ressourcenschonend bedeutet in unserem Fall, das ich nach der Variante
suche, die auch unter erhöhter Last, sprich viele Besucher rufen gleichzeitig
die Seite auf, zuverlässig arbeitet und nicht abschnmiert, weil die
Anwendung viel zuviel Ressourcen gleich welcher Art beansprucht.

Die (in ASP.NET) gegebenen Lösungen lesen offenbar immer die kompletten
Daten aus der DB, um dann nur die wenigen Datensätze, die auf einer Seite
Platz finden, anzuzeigen.

Wenn ich hundertausende Seitenaufrufe im Monat habe und zehntausend
Datensätze in der DB, dann finde ich das - wie oben schon erwähnt - irgendwie
beunruhigend und suche natürlich nach Wegen, das so zu optimieren, das die
Belastung des (physikalischen) Webservers pro Seitenaufruf so gering wie
möglich ist, damit er zuverlässig arbeitet.

Ich glaube, das wir mit Deiner Anregung, CTEs einzusetzen, eine gute Lösung
haben. Die Selektierung und Entscheidung, welche Datensätze auf die Seite
kommen, läuft innerhalb der Datenbank ab und nur die tatsächlich benötigte
Datenmenge wird ausgegeben. Einziger Kritikpunkt ist die Sortierung, die bei
einer Lösung mit "Fill und Abfrage-Abbruch" entfallen könnte. Dafür kann ich
aber die Daten dann mit einem einfachen DataReader ausgeben.

Blöd finde ich aber nach wie vor, das ich, nur um die Gesamtmenge der Seiten
zu berechnen, für jeden Seitenaufruf zusätzich ein SELECT COUNT fahren muß,
aber das läßt sich wohl nicht vermeiden und wird den DB-Server auch nicht
wirklich nenenswert belasten, oder?

Viele Grüße

Jan

"Peter Fleischer" wrote:

"Jan" <Jan@xxxxxxxxxxxxxxxxxxxxxxxxx> schrieb im Newsbeitrag
news:3EC2B799-E13A-492C-A0A8-95B3CF2B7A08@xxxxxxxxxxxxxxxx

danke für den Tip mit dem CTE.

Meine Abfrage sähe dann so aus:

WITH subquery AS
(SELECT [Name], [Strasse], [Ort], ROW_NUMBER() OVER (ORDER BY ID) AS
[rownum] FROM Adressen WHERE ID > 0)
SELECT * FROM subquery WHERE rownum BETWEEN 2 AND 6;

Ich vermute das ist das, was Du meintest, oder?

Hi Jan,
genau das meine ich, wobei die Bezeichnung "subquery" in dieser Situation
irreführend ist, da es sich um keine Unterabfrage handelt. Wenn du diese
SQL-Anweisung vom Client (nicht als SP) nutzt, dann vergiß das
vorangestellte Semikolon nicht. Vielleicht hat das Kristol vergessen und es
funktioniert deshalb bei ihm nicht.

DB-Server = Client = Webserver ist in unserem Fall die gegebene Situation
und dafür suchte ich die ressourcenschonenste Lösung.

Wie du deine Hardware strukturierst und benennst, ist für die Lösung erst
einaml uninteressant. Wenn bei dir aus der Sicht der Programmlösung
"DB-Server = Client = Webserver", dann würde das bedeuten, dass es nur ein
Programm gibt, was alle Funktionen gleichzeitig ausführt. Das glaube ich
nicht. Ich vermute, dass du verschiedene Anwendungen nutzt, egal, auf
welcher Hardwareumgebung bzw. -struktur. Warum dann aber der Bediener auf
der gleichen Hardware, auf der die Server-Anwendungen laufen, seine
Client-Anwendung abarbeiten muss, ist unklar. Genau so unklar ist dann,
warum du einen WebServer benötigst, wenn alles auf dem gleichen Rechner
abgearbeitet werden soll.

Wenn du von Ressourcenschonung schreibst, dann musst du auch die konkreten
Ressourcen benennen, die du schonen willst - CPU-Zeit, RAM-Belegung,
Plattenkapazität, Netzbelastung. Alles gleichzeitig schonen, wird dir nicht
gelingen. Hinzu kommt die Zielfunktion. Was nutzt es beispielsweise, wenn du
RAM sparst, der Anwender aber deshalb sehr lange auf eine Antwort warten
muss.

--
Viele Gruesse

Peter


.



Relevant Pages

  • Re: cs-host, host header and destination
    ... Host Header information was>www.microsoft.com. ... The webserver does not care ... Header for www.microsoft.com on this server, the>client got back a page! ... and I was wondering where and how that was set in IIS. ...
    (microsoft.public.inetserver.iis)
  • Re: System.WebException | The operation has timed out
    ... it is webserver that has timed out. ... But the error I am receiving is at ... When web server times out, the error received by the client is "The ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Zeichenkodierungsverwirrung
    ... ich wollte dir nicht auf diese Füsse treten, mit meinem zweiten Post. ... Ich mußte mich erstmal mit diesem Tool vertraut machen, ... Wenn ich den Client nutze kommt als Ausgabe: ... Dein Webserver die Daten aus? ...
    (de.comp.datenbanken.mysql)
  • =?Utf-8?Q?Re:_Anderer_Port_f=C3=BCr_Webserver=C3=B6f?= =?Utf-8?Q?fentlichung_=28ISA_2000=29?
    ... vielen Dank, dass Du so intensiv nachgehakt hast. ... Webserver zeigte auf den PDC und nicht auf den ISA und war insofern nicht ... > Der Client muss ein SecureNAT Client sein. ...
    (microsoft.public.de.german.isaserver)
  • Re: Probleme mit iptables-fw
    ... Da läuft ein Webserver, der von innen erreichbar sein soll - hat sich ... läuft einen MySQL-Replikation zwischen 2 DB-Server, ... DB-Server anpingen. ... Bei der Cisco- oder der Linux-Kiste? ...
    (de.comp.security.firewall)