2

当前在具有 128 GB RAM 和 1TB 内部 SCSI 驱动器的 Intel 双 8 核处理器服务器上运行 SQL Server 2008 R2 SP1,在 64 位 Windows Server 2008 R2 Enterprise 上运行。

自 2011 年以来,服务器一直在运行我们的数据仓库和分析服务包。此服务器和 SQL 实例不用于 OLTP。

突然并且没有警告,所有调用构建数据仓库表(使用存储过程)的 SSIS 包的作业都因“通信缓冲区死锁”错误而失败。每次运行进程时,包内产生错误的 SP 都不同。

但是,如果 SQL Server Profiler 在启动作业时正在运行以进行跟踪,则作业将运行良好。

这最初发生在 6 月份我们的开发服务器(相同的配置)上。与 Microsoft 联系后发现了磁盘 I/O 问题,并建议设置 MaxDOP = 8,这已经缓解了死锁问题,但引入了一个问题,即进程在随机时间间隔内可能需要长达 3 倍的时间。

这刚刚发生在我们的生产服务器上。MaxDOP 当前设置为零。在过去的一个月里,操作系统、SQL Server 或 SSIS 包没有任何变化。这些作业在 9 月 5 日一夜之间运行良好,但在昨晚(9 月 6 日)一夜之间因错误而失败,并且在任何重试时都继续失败。

任何一项作业在失败之前运行的时间长度并不一致,作业之间也没有一致性。以前需要 2 分钟才能完成的作业将在几秒钟内失败,而通常需要 2 小时的作业可能会在失败前 30 到 90 分钟的任何时间运行。

4

1 回答 1

0

您是否考虑过更改数据库的隔离级别。当数据库上发生并行读取和写入时,这会有所帮助。

于 2013-10-06T05:29:28.033 回答