2009-12-31 8 views

Antwort

19

Fügen Sie zuerst Ihre Daten ein und erstellen Sie dann Ihren Index.

Jedes Mal, wenn Sie eine UPDATE-, INSERT- oder DELETE-Operation ausführen, müssen alle Indizes in der Tabelle ebenfalls aktualisiert werden. Wenn Sie also zuerst den Index erstellen und dann 10 Millionen Zeilen einfügen, muss der Index ebenfalls 10 Millionen Mal aktualisiert werden (es sei denn, Sie führen Bulk-Operationen durch).

6

Es ist schneller und besser, die Datensätze einzufügen und dann den Index zu erstellen, nachdem die Zeilen importiert wurden. Es ist schneller, weil Sie nicht den Aufwand für die Indexwartung haben, da die Zeilen eingefügt werden, und es ist aus Fragmentierungssicht für Ihre Indizes besser.

Offensichtlich müssen Sie für einen eindeutigen Index sicherstellen, dass die zu importierenden Daten eindeutig sind, sodass beim Erstellen des Index keine Fehler auftreten.

2

Wie andere bereits gesagt haben, fügen Sie zuerst den Index ein und fügen ihn später hinzu. Wenn die Tabelle bereits vorhanden ist und Sie einen Datenstapel wie diesen einfügen müssen, löschen Sie alle Indizes und Integritätsbedingungen, fügen Sie die Daten ein und wenden Sie dann zuerst Ihre Indizes und dann Ihre Integritätsbedingungen an. Sie werden sicherlich Zwischenübermittlungen vornehmen, um zu verhindern, dass Ihnen der Speicherplatz für das Rollback-Segment oder etwas Ähnliches ausgeht. Wenn Sie so viele Daten einfügen, kann es nützlich sein, SQL * Loader zu verwenden, um Zeit und Ärger zu sparen.

Ich hoffe, das hilft.

+0

„Häufig in dem falschen Glauben zu begehen, die Sie Ressourcen oder die Dinge sind die Erhaltung schneller gehen nur, dass dies für Sie: o Sie verlangsamt, ja, das ist richtig, verlangsamt Sie - macht Sie SLOOOWWWWEEERRR laufen o spart keine Ressourcen, in der Tat, es verbraucht mehr (Sie erzeugen mehr wiederholen) o ernsthaft in Frage stellt die Integrität Ihrer Daten " – Angelina

Verwandte Themen