[英]deleting 500 records from table with 1 million records shouldn't take this long
我希望有一个人可以帮助我。 我有一个简单的sql语句
delete from sometable
where tableidcolumn in (...)
我有500条要删除和重新创建的记录。 该表最近增长到超过1个工厂记录。 问题是上面的声明需要5分钟以上才能完成。 我有一个主键和2个非聚集非唯一索引。 我的删除语句正在使用主键。
谁能帮助我了解为什么此声明花了这么长时间以及如何加快它的执行速度?
我首先要看两个方面,锁定和错误的计划。
锁定-运行查询,并在查询运行时查看它是否被其他任何东西阻塞,“如果您发现有任何东西阻塞了您的请求,那么请从sys.dm_exec_requests中选择*,其中blocking_session_id <> 0”,那么我将从以下内容开始:
如果没有锁定,则获取插入的执行计划,它在做什么? 它异常高?
除此之外,您预计需要多长时间? 比这更长或更长时间吗? 它只是在显着增长后才变得如此缓慢还是在很长一段时间内变得越来越慢?
I / O性能如何,您的平均读写时间等是多少?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.