Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
RAD-Studio 2009 Pro
|
Import einer grossen Tabelle - Optimierung
12. Jun 2010, 11:31
Datenbank: Firebird • Version: 2.1 • Zugriff über: UIB
Ich möchte viele Daten in eine Firebird Datenbank importieren, die Haupttabelle hat etwas über 100000 Datensätze, drei Nebentabellen vielleicht je ca 20000.
Ich lese jeweils eine Zeile aus dem Importfile ein und erzeuge dann einen datensatz in der haupttabelle und maximal einen Datensatz in jeder der drei anderen Tabellen (mittels update or insert Statement). Zu jedem erzeugten Datensatz in jeder dieser Tabellen wird ein weiterer Datensatz mittels Trigger in einer 5. Tabelle erzeugt.
Ich bilde mir ein, alle nötigen Indizes erstellt zu haben. Trotzdem wird das Programm mit zunehmender Tabellengrösse dramatisch langsamer. Was kann man machen, um das zu verhindern?
Natürlich sind die Indizes bei der Erstellung auf eine leere Datenabnk hin "optimiert". Wäre es sinnvoll, alle paar Tausend Datensätze die Indizes zwecks Optimierung neu zu erstellen?
Wie wirkt sich die Transaktionsgrösse aus? Ich starte alle 500 Importzeilen (in Summe ca 2000 inserts in die verschiedenen Tabellen) eine neue Transaktion.
|