SQL Server 2008r2 提交性能问题

Posted

技术标签:

【中文标题】SQL Server 2008r2 提交性能问题【英文标题】:SQL Server 2008r2 Commit performance issue 【发布时间】:2016-12-26 20:26:44 【问题描述】:

我有一个包含主外部游标的大型 SP(我知道,我知道,但我必须检查每一行以确定如何处理它,例如写入子表、异常表、报告等)和一些内部游标。在这些游标中调用其他执行实际 INSERTS/UPDATE 和 DELETES 的 SP。

在最外层光标的顶部,我执行 BEGIN TRAN,在光标的末尾,在我循环回到 TOP 之前,我执行 COMMIT TRAN。为最外层的行提交所有工作(父母和孩子)。

这是一个独立的进程,在软件升级过程中没有用户访问目标数据库。

我有一个调试语句,显示处理外部光标的毫秒持续时间。在我运行此程序的大多数客户中,该持续时间在整个过程中非常一致,但是在一个客户中,该持续时间逐渐变慢。此外,该客户端站点上的最后一次 COMMIT 似乎需要 84 秒来处理,而其他它不会影响任何持续时间,平均时间相同。

客户端之间的代码相同。隔离级别相同。

sp_configure 选项几乎相同。

客户端 DBMS 位于虚拟服务器上,数据和日志的平均 SQLIO 时间很好。从一百万行表中测试一个 select */into [table] 只需要 3 秒,所以写入和自动提交似乎没问题。

进一步诊断的想法或想法?

【问题讨论】:

这可能有一百万个原因。没有看到一些代码和更多细节,没有人能提供比推测更多的信息。 【参考方案1】:

问题是被调用的 sp 使用的索引性能不佳 - 它正在执行表空间扫描,随着查找时间的增加,扫描速度越来越慢。

【讨论】:

以上是关于SQL Server 2008r2 提交性能问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在SQL Server 2008R2中查找未使用的列

sql server 2008R2自动化批处理脚本安装

SQL SERVER 2008R2 错误码查询地址

windows server 2008r2可以安装sql server2012吗

PowerDesigner 16.5 链接SQL Server 2008R2

完全卸载SQL Server 2008r2