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 记一次删除数据特别慢的主要内容,如果未能解决你的问题,请参考以下文章