【发布时间】:2015-11-30 12:56:56
【问题描述】:
我正在使用 SQL Server 2008 R2。我正在从表中删除约 5000 条记录。当我使用相同的数据测试性能时,我发现删除需要 1 秒或 31 秒。
测试数据库是保密的,所以不能在这里分享。
我已经尝试分离负载,一次只删除1000条记录,但我仍然遇到偏差。
我应该如何继续我的调查?性能差异的原因可能是什么?
查询很简单,例如:delete from PART where INVOICE_ID = 64225
【问题讨论】:
-
请贴出查询和查询的执行计划。
-
什么时候需要 1 秒,什么时候需要 31 秒?它是可重现的还是不可预测的?
-
我注意到的唯一模式是它在 1-4 次执行后发生变化(例如,慢一次,然后快 4 次,反之亦然)
-
是否有其他进程,访问同一个数据库或同一个服务器?在 SQL 监控工具中,您还看到了哪些其他活动,您看到了什么样的等待(网络 IO、磁盘 IO)?查询性能是否取决于记录内容 - 一些触发器或存在级联删除的外键?
-
@TT 我可以用什么格式发布执行计划?我有来自分析器或 sqlplan 文件的 XML
标签: sql-server