我正在处理SQL作业,涉及处理大约75000条记录。
现在,该工作在10000/20000记录中工作正常,速度约为500 / min。在大约20000条记录之后,执行就死了。它每30分钟加载大约3000条记录并保持相似的速度。
昨天我问了一个类似的问题,对程序变更提出了很少的好建议。 这是链接: SQL SERVER Procedure Inconsistent Performance
我仍然不确定如何在这里找到真正的问题。以下是我的一些问题:
答案 0 :(得分:2)
我一直是这类问题很常见的大型数据仓库实施的管理员。虽然,我无法确定它,但听起来是服务器的性能因日益增长的日志文件或内存使用而降低。 Perfmon是查看这些类型问题的好工具。
有关使用此工具的精彩文章可以找到here
答案 1 :(得分:1)
除非你的服务器真的不知所措,否则75000条记录应该不是tempdb的问题,所以我真的怀疑这是你的问题。
您之前的问题表明SQL Server,因此我建议在proc运行时运行跟踪。您可以从跟踪中获取语句时序等,并使用它来确定减慢速度的地方或内容。
您应该在单独的交易或小组客户中运行每个客户的处理。否则,最终事务必须写入的working set项不断变大,每次添加都会导致重写。您最终可以强制将当前数据分页,真的会减慢速度。
检查分配给SQL Server的内存。如果它太小,你最终会分页SQL Server的进程。如果它太大,你可以让操作系统没有足够的内存。