Benutzer mit den meisten Antworten
SSIS und temporär Tabelle

Frage
-
moin moin SSIS ler :-)
ich hoffe, dass ich hier richtig bin;-)
habe folgende Problem.
In einem MS-SSIS Paket importiere ich aus einem Oracle Datenbank (Quelle) so etwa 70 Mil. Datensätze in einer temporär Tabelle in dem Zieldatenbank (#zielTabelle) (siehe Anhang
).
Nun will ich die Temporäre Tabelle in einem weiteren Datenfluss verwenden und danach löschen. weißt jemand wie das Funktioniert?
Vielen Dank im Voraus
Antworten
-
Ergänzend zu der Antwort von Olaf ist zu überlegen eine permanente Tabelle für den Transfer zur Verfügung zu stellen. Du kannst diese auch indizieren und damit den Sort vereinfachen.
Außerdem könntest Du ja einen nativen Join machen, wenn beide Tabellen jetzt im SQL Server liegen, oder?
Temporäre Tabellen brauchst Du auch nicht zu löschen, da der SQL Server diese nach der Beendigung der Session abräumt, wenn er Zeit dazu hat. Machst Du es selber, dann wartest Du auf die Beendigung der Löschung.Einen schönen Tag noch,
Christoph
--
Data Platform MVP - http://www.insidesql.org/blogs/cmu- Als Antwort markiert Faabi Mittwoch, 23. Dezember 2015 15:04
Alle Antworten
-
Hallo,
eine lokale temporäre Tabelle #temp ist nur im Scope des Erstellers sichtbar, global ##temp sind nur solange vorhanden, wie auf die Tabelle verwiesen wird. Problem ist hier, das im Standard beim Taskwechsel geschlossen werden und so beide Arten der Tabellen automatisch gelöscht werden.
Um das zu umgehen gibt es in den Eigenschaft "RetainSameConnection", welche im Standard auf "False" steht. Wenn man es auf True setzt, sollte die Connection während der gesamten Ausführung geöffnet und so die Temp Tabellen erhalten bleiben.
Siehe auch How to create and use Temp tables in SSIS
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Ergänzend zu der Antwort von Olaf ist zu überlegen eine permanente Tabelle für den Transfer zur Verfügung zu stellen. Du kannst diese auch indizieren und damit den Sort vereinfachen.
Außerdem könntest Du ja einen nativen Join machen, wenn beide Tabellen jetzt im SQL Server liegen, oder?
Temporäre Tabellen brauchst Du auch nicht zu löschen, da der SQL Server diese nach der Beendigung der Session abräumt, wenn er Zeit dazu hat. Machst Du es selber, dann wartest Du auf die Beendigung der Löschung.Einen schönen Tag noch,
Christoph
--
Data Platform MVP - http://www.insidesql.org/blogs/cmu- Als Antwort markiert Faabi Mittwoch, 23. Dezember 2015 15:04
-
Hallo Olaf, hallo Christoph,
Vielen dank für eure schnelle Antwort, es Funktioniert.
"RetainSameConnection" hatte schon auf "True" gesetzt.
Wünsche euch Frohe Weihnachten und guten rutsch ins neue Jahr.
Faabi
- Bearbeitet Faabi Mittwoch, 30. Dezember 2015 08:49