Re: ADDNEW ADO
From: Heinz Jacobs (HJaocbs_at_eat-engineer.de)
Date: 08/04/04
- Previous message: Joachim Jauss: "Re: Access Fehler: Das Endtrennzeichen für die Zeichenfolge..."
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 4 Aug 2004 09:58:57 +0200
"Elmar Boye" <ElmarB@gmx.net> schrieb im Newsbeitrag
news:2mp87tFpbqefU1@uni-berlin.de...
> Hallo Heinz,
>
> Heinz Jacobs <HJaocbs@eat-engineer.de> schrieb ...
> > "Elmar Boye" ElmarB@gmx.net> schrieb ...
> >> Peter <ptoke@t-online.de> schrieb ...
> >>> Wenn ich ca.50000 DS mit addnew importiere dauert das ca.
> >>> 10 min. Wobei das einlesen der textdatei ziemlich schnell
> >>> geht ca. 10 sec. Aber das UpDateBatch dauert ewig.
> >>>
> >>> Kann mir jemand sagen wieso.
> >>
> >> Erst das UpdateBatch schickt die Daten an den SQL Server
> >> und das werden dann 50000 Insert Befehle. Und wie schnell
> >> das läuft hängt von der Plattenleistung Deines SQL Server ab...
> >> ist aber generell nicht die schnellste Methode.
> >>
> > ich habe bei einem Probeaufbau
> > )WinNT 4.0 Server, SQL 7.0, 450MHz 128MB)
> > die Updatebatch und auch die einzelne Insert Variante probiert.
> > Meine Feststellungen sehen wie folgt aus: Bei der Batch Variante ist
> > die CPU Auslastung höher und das Schreiben der Daten in der Tabelle
> > geht schneller. Andere Benutzer des Servers werden besser mit Daten
> > versorgt. Daher scheint es so, dass die Batch Anweisung von anderen
> > Anfragen unterbrochen werden kann.
>
> Beim Client dürfte UpdateBatch summa summarum die gleiche CPU Zeit
> verbrauchen. Wobei die Spitzenlast dort beim Einfügen der Daten in
> die Tabelle auftritt. Dabei werden dann noch keine Anweisungen an
> den SQL Server verschickt, sondern ausschliesslich intern gewerkelt.
> Limitierender Faktor ist da ausschliesslich die Rechenleistung des
> lokalen Clients - und bei grösseren Datenmengen der Speicher.
>
> Mit dem UpdateBatch werden alle Zeilen sukzessive als einzelne
> INSERT Anweisungen an den SQL Server geschickt, dabei hängt es
> davon ab, wie schnell Netzwerk und SQL Server die Daten verarbeiten
> können.
>
> Arbeitest Du nicht mit Batch Methoden wird das das ganze mehr
> verteilt, weil mal der Client, mal der SQL Server arbeiten muss,
> da jede zeile einzeln transferiert wird.
>
> Ein Beispiel hatte ich vor Jahren mal gepostet:
>
http://groups.google.com/groups?selm=9j9ijc%24n9kgi%242%40ID-28695.news.dfncis.de
>
> Dort ist auch ein Beispiel für ein richtiges Batch-Insert drin -
> allerdings etwas gehandicapt durch die relative langsamen
> Zeichenkettenfunktionen von VB(A).
>
> Gruss
> Elmar
>
Hallo Elmar,
ist richtig, mal arbeitet der Client und mal der Server. Logischer Weise
kann der Server die Daten nur zu schnell aufnehmen, wie er sie auch
verarbeiten kann. Bei meinem Probeaufbau konnten bei der Batch Methode
andere User, in anderen Datenbanken, trotz "schnelleren" Abarbeiten auf dem
Server arbeiten. Selbst bei der "Insert-Welle" wurden die Verbindungen nicht
über TimeOut abgebrochen, wie bei der anderen Lösung. Insgesamt bricht die
Leistungsfähigkeit nicht so sehr ein.
Gruß Heinz
- Previous message: Joachim Jauss: "Re: Access Fehler: Das Endtrennzeichen für die Zeichenfolge..."
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|