当线上数据表的数据量很多时,一次性使用DELECT删除会造成时间过长,可能会锁死表,同时日志也会占满。
此时我们需要将大批量操作分成小批量操作,比如一次性只删除1000条数据。以下语句红色部分修改为对应的表和字段即可。
DECLARE @onedeletecount INT
SET @onedeletecount=1000
WHILE 1=1
BEGIN
DELETE TOP(@onedeletecount) FROM tablename WHERE date <'2019-08-28' ;
IF (@@rowcount<@onedeletecount) BREAK ;
END
暂无评论