vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Auslesen großer Textdateien schläft ein 
Autor: ModeratorFZelle (Moderator)
Datum: 19.05.09 16:35

Habe mir deine Daten mal angesehen.

Das ist das typische Problem bei Masseninserts.
Gehen wir mal exemplarisch auf die Track Tabelle ein.

Du hast hier die ID als primary key.
Jede deiner Zeilen aus der csv ( tab delimited ) hat jetzt eine mehr oder weniger zufällige id.
Da diese als Primary key angelegt ist, muss die DB ( egal welche ) vor dem schreiben
schauen, ob diese ID schon vorhanden ist, denn ein PK muss eindeutig sein.
Das verlangsamt erstmal den ganzen prozess, und spätestens wenn die tabelle nicht mehr in den speicher
passt, kommt es zu massiven problemen.

Hier ist es dann anzuraten die tabellen anders aufzubauen.
Erstelle dir die Tabelle eher so:
CREATE TABLE track (rowid INTEGER PRIMARY KEY ,id INTEGER NOT NULL, artist _
  INTEGER NOT NULL, name VARCHAR(255) NOT NULL, gid CHAR(36) NOT NULL)
Jetzt hat du rowid als PK ( mit autowert) und der insert der ganzen Tabelle geht deutlich schneller.
Bei mir liesst er dann die Track tabelle komplett in 170 Sekunden ein, was etwa 3,5 MB lesen + 3,5 mb Schreiben pro sekunde ist.

Solltest Du viel suchen müssen setzt du nach dem Import dann einen UniqueIndex auf die id, das dauert
bei mir dann aber ca 80 sekunden extra .
Insgesamt ist also das einlesen + erzeugen des index in ca 250 sekunden vorbei.


P.S.:
Kann es sein, das du von VB6 kommst?
Dein code sieht nämlich so aus, und könnte ein bischen echte oop und etwas Übersichtlichkeit vertragen.
Ich schick dir mal eine etwas überarbeitete version.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Auslesen großer Textdateien schläft ein1.456Bitscheucher16.05.09 15:37
Re: Auslesen großer Textdateien schläft ein854ModeratorFZelle16.05.09 18:40
Re: Auslesen großer Textdateien schläft ein857Bitscheucher16.05.09 20:03
Re: Auslesen großer Textdateien schläft ein824ModeratorFZelle16.05.09 20:53
Re: Auslesen großer Textdateien schläft ein825ModeratorFZelle19.05.09 16:35
Re: Auslesen großer Textdateien schläft ein820Bitscheucher19.05.09 22:05
Re: Auslesen großer Textdateien schläft ein872ModeratorFZelle19.05.09 23:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel