CDC SSIS包中的内存问题

时间:2013-12-26 16:17:38

标签: sql sql-server ssis cdc

我们最近在SQL Server 2008中实施了CDC。直到上周才执行。但前天,我们从服务器得到了一个内存不足的问题。它说从CDC创建的临时文件使服务器硬盘已满。我们有解决方案吗? CDC完成后,临时文件将被删除,但由于这会产生巨大的临时文件,因此会出现OUT或内存问题。

是否可以优化CDC包,以便为大量更新消耗更少的内存。

1 个答案:

答案 0 :(得分:2)

您的软件包使用的内存比服务器可以分配的内存多。发生这种情况时,它会在磁盘上创建临时文件以应对内存情况。默认情况下,这将写入数据流任务中的BufferTempStoragePath值。如果您未提供此值,则这些文件将默认为操作系统的临时文件位置。这通常是C:当你填充时会导致不稳定。那很糟糕(tm)

发生这种情况时,您有4个选项。

  1. 更改每个数据流任务的属性,以显式定义BufferTempStoragePath的位置。这通常对您的进程影响最小,但不解决分页到磁盘的根本原因。
  2. 重做整个程序包,以便在此数据流触发时不会发生并行操作。
  3. 将BufferRows(约)调整为较小的数字,以减少进入管道的行数,从而减少分页。
  4. 重做数据流以使用更少的异步转换。这个article是识别内存密集型转换的一个很好的起点
  5. 缓冲区位置What is the actual use of buffer temp and blob temp in ssis

    的参考