MSSQL 记一次删除数据特别慢

Posted love-zf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSSQL 记一次删除数据特别慢相关的知识,希望对你有一定的参考价值。

x

["Table闪亮登场"]

主表:Base(BaseID Int,BaseName Nvarchar(200))

关系表:BaseForUser(BaseForUserID Int,BaseID Int)

["一些描述“]

要删除BaseID为1数据,当然BaseForUser中BaseID为1的数据也要删除...
(并且要删除的数据还不多,Base表一条数据,BaseForUser表中10条数据左右)
But  BaseForUser中数据比较多(客户比较多,你懂得),一亿多...

["第一个版本"]

Declare @BaseID Int = 1
Delete From BaseForUser Where BaseID = @BaseID

Delete From Base Where BaseID = @BaseID

--耗时 1分钟多...Pass

 

["第2个版本"]

第二个版本:
Delete Base From (Select BaseID From BaseForUser Where BaseID = @BaseID) U Where Base.BaseID = U.BaseID

--耗时50s...Pass

 

["第③个版本"]

--确定范围
Declare @User Table(BaseForUserID Int Primary Key)
Insert Into @User 
Select T.ClassTableGenerateForStudentID 
From BaseForUser U With(NoLock)
Where U.BaseID = @BaseID

Delete From BaseForUser
Where BaseForUserID Between ( Select Min(BaseForUserID) From @User ) 
And ( Select Max(BaseForUserID) From @User ) And BaseID = @BaseID

--耗时10s,好吧,先这样吧...-_-||

 

x

以上是关于MSSQL 记一次删除数据特别慢的主要内容,如果未能解决你的问题,请参考以下文章

记一次数据查询优化

记一次线上gc调优的过程

记一次SqlServer骚操作——递归

记一次 windows server 2012R2 上安装 MSSQL2005 及网站发布

记一次mysql慢查询日志分析

请教大神,mysql运行突然变特别慢