none
SSIS und temporär Tabelle RRS feed

  • 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

    MS-SSIS Temporäre Tabelle).

    TEMPORÄRE TABELLEN IN SSIS

    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

    Mittwoch, 23. Dezember 2015 12:50

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
    Mittwoch, 23. Dezember 2015 13:27

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]

    Mittwoch, 23. Dezember 2015 13:13
  • 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
    Mittwoch, 23. Dezember 2015 13:27
  • 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
    Mittwoch, 23. Dezember 2015 15:04