IS Paket Transaktionsprotokoll

16/05/2011 - 11:29 von Eckhard Sallermann | Report spam
MS SQLSERVER 2008 R2

Tach,

Per IS Paket werden Daten aus einer dbasedatei in eine Tabelle einer
Datenbank kopiert. Dazu wird ein Datenflusstask verwendet, der über
"Schnelles Laden" die Daten in die Zieltabelle kopiert.

Dieser Vorgang landet dann auch im Transaktionsprotokoll, welches nach
der Sicherung sehr groß ist.

Um das zu Vermeiden stelle ich vorher die Datenbank auf "BULK" um und
nach dem Vorgang wieder auf "FULL"

dennoch wird auch dann das Transaktionsprotokoll sehr groß.

Meine Frage ist, wie ich vermeiden kann, dass die so groß werden.
Klar, ich könnte auf "Simple" stellen, das geht aber aus gewissen
Gründen nicht.

Gruß Ecki
 

Lesen sie die antworten

#1 Irmgard Schwenteck
18/05/2011 - 09:47 | Warnen spam
Hallo

Eckhard Sallermann schrieb:
MS SQLSERVER 2008 R2

Tach,

Per IS Paket werden Daten aus einer dbasedatei in eine Tabelle einer
Datenbank kopiert. Dazu wird ein Datenflusstask verwendet, der über
"Schnelles Laden" die Daten in die Zieltabelle kopiert.

Dieser Vorgang landet dann auch im Transaktionsprotokoll, welches nach
der Sicherung sehr groß ist.

Um das zu Vermeiden stelle ich vorher die Datenbank auf "BULK" um und
nach dem Vorgang wieder auf "FULL"

dennoch wird auch dann das Transaktionsprotokoll sehr groß.

Meine Frage ist, wie ich vermeiden kann, dass die so groß werden.
Klar, ich könnte auf "Simple" stellen, das geht aber aus gewissen
Gründen nicht.




Der Unterschied von "Bulk-insert" zu "Vollstàndig" ist, daß beim
Bulk-Insert die kompletten geànderten Seiten ins Log geschrieben werden
anstatt der einzelnen inserts. Groß wird es also trotzdem.
Es bringt hier auch nichts. das Log immer wieder zu verkleinern, denn
der Platz wird ja beim nàchsten mal wieder gebraucht. Das führt dann nur
zu unnötiger Fragmentierung und außerdem ist das Alloziieren von
Speicherplatz eine zeitaufwendige Aktion.

Du könntest gleich nach dem Import eine Sicherung des logs machen, damit
der Platz wieder freigegeben wird.

Ich denke, man sollte auch vorher noch eine Sicherung machen. Mußt mal
austesten, wie es mit dem belegten Speicherplatz im log aussieht.
DBCC SQLPERF(LOGSPACE)

Gruß
Irmgard

Ähnliche fragen