Wer mit großen Datenmenge arbeitet oder viele SSIS Pakete gleichzeitig ausführt, hat vielleicht schon einmal die Fehlermeldung “Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung” erhalten.
Jeder Datenfluss Task besitzt die beiden Eigenschaften BufferTempStoragePath und BLOBTempStoragPath. Diese beiden Pfade geben an, wo BLOBs (text, ntext, image) und alle anderen Daten hin “geswapped” werden. Die Integration Services schreiben die Daten standardmäßig in die über die Systemvariablen definierten Pfade TEMP und TMP. Standardmäßig ist dies (auf einem Windows Server 2008) das Verzeichnis %USERPROFILE% des jeweiligen ausführenden Benutzers, also z.B. “C:UsersAdmini~1AppDataLocalTemp”.
Um dies zu ändern, müssen die Eigenschaften der Datenflusstasks in einem SSIS Paket angepasst werden. Jeder Task besitzt eine Eigenschaft “BufferTempStoragePath” und “BLOBTempStoragePath”, die jeweils auf ein oder mehrere Verzeichnisse gesetzt werden können.
Zu empfehlen sind diese Änderungen nicht nur aufgrund des eventuellen Speichermangels, sondern auch aus Performance gründen. Sobald Windows einen “low-memory-resource notification event” schmeißt, verlangsamen die Integration Services ihre Arbeit. Aus diesem Grund sollten die beiden Ordner möglichst auf ein sehr schnelles, physikalisch getrenntes Laufwerk verlegt werden, oder natürlich auch auf mehrere.