0

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

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

4

1 回答 1

2

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

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

  1. 更改每个数据流任务的属性以明确定义 BufferTempStoragePath 的位置。这通常对您的进程影响最小,但不能解决分页到磁盘的根本原因。
  2. 当此数据流触发时,重新设计您的整个包以不发生并行操作。
  3. 将 BufferRows(大约)调整为更小的数字,以允许更少的行进入管道,从而减少分页。
  4. 重新设计数据流以使用更少的异步转换。本文是识别内存密集型转换的良好起点

关于缓冲区位置的参考ssis 中缓冲区温度和 blob 温度的实际用途是什么

于 2013-12-26T16:47:05.537 回答