2017-03-09 2 views
-1

Ich versuche, Daten von db2 zu db2 mit ssis zu laden. Es gibt nur eine Quellentabelle mit 2,4 Millionen Datensätzen, und es gibt keine Umwandlung zwischen Quell- und Zieltabelle, aber das Laden endet nach 1,6 Millionen Datensätzen. Fehler, die ich erhalte ist:0x8007000E Beschreibung: "Nicht genügend Arbeitsspeicher." Fehler

Error: 0xC0202009 at LOAD TO SATGE_GLMXPF_COMPRESSED, OLE DB Destination [227]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8007000E. An OLE DB record is available. Source: "Microsoft Cursor Engine" Hresult: 0x8007000E Description: "Out of memory.". Error: 0xC0047022 at LOAD TO SATGE_GLMXPF_COMPRESSED, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Destination" (227) failed with error code 0xC0202009 while processing input "OLE DB Destination Input" (240). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. Error: 0xC02090F5 at LOAD TO SATGE_GLMXPF_COMPRESSED, DataReader Source [2]: The DataReader Source was unable to process the data. Exception from HRESULT: 0xC0047020 Error: 0xC0047038 at LOAD TO SATGE_GLMXPF_COMPRESSED, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on DataReader Source returned error code 0xC02090F5. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

Antwort

0

Sie müssen „Zeilen pro Charge“ konfigurieren und „Maximale Einsatz begehen Größe“ sorgfältig.

+0

danke .. was soll die empfohlene Einstellung sein? –

+0

Dies ist etwas, das Sie basierend auf verfügbaren Speicher testen müssen, grobe Schätzung ist Zeilengröße * Anzahl der Zeilen –

+0

Danke für die Antwort, aber derzeit verwende ich Tabelle oder Ansicht im Ziel, aber wenn ich Tabelle oder Ansicht verwenden schnell laden in das Ziel es sagt, dass - Fehler bei LOAD TO SATGE_GLMXPF_COMPRESSED [OLE DB Ziel [475]]: Fehler beim Öffnen eines Fastload-Rowset für "" ADMINISTRATOR "." STAGE_GLMXPF_COMPRESSED "". Überprüfen Sie, ob das Objekt in der Datenbank vorhanden ist. Wissen Sie, wie Sie das beheben können? –

0

Der Fehler "Nicht genügend Arbeitsspeicher" tritt auf, wenn der Ihrem Prozess zugewiesene Speicher von der zu verarbeitenden Datenmenge überlastet ist. Hier sind ein paar Überlegungen:

  • Haben Sie eigentlich genug Arbeitsspeicher auf der Maschine installiert, die Sie ausführen? Ich würde auf einem Server mit 32 GB eine Augenbraue heben. Wenn Sie lokal testen, verwenden Sie ein kleineres Dataset und installieren Sie mehr Arbeitsspeicher auf Ihrem Entwicklungscomputer. Es ist nicht ungewöhnlich, heutzutage einen 16GB Laptop zu haben.
  • 32 oder 64bit? 32-Bit-Prozesse können nur 2 GB Speicher reservieren, der schnell überlaufen kann. Versuchen Sie, wenn möglich, zu 64 Bit zu wechseln.
  • Reduzieren Sie die Spalten im Datenfluss. Wenn möglich, entfernen Sie alle Spalten, die nicht verwendet werden. Dies wird die Verwendung der Speicherpuffer verbessern.
  • Verwenden Sie Datenanbieter von IBM oder kaufen Sie einen benutzerdefinierten. d.h. http://www.cozyroc.com/ssis/db2-destination. Der Fehler, der Sie bei dem Versuch, schnelles Laden hatte:

Failed to open a fastload rowset for...

wird höchstwahrscheinlich durch den Anbieter verursacht werden, nicht Bulkbeladung unterstützen. Bulk Loading hilft dabei, Dinge viel schneller zu bewegen, was bei einem speicherbeschränkten System wichtig ist.

Verwandte Themen