首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

T-SQL 大数据量剔除优化方案

2013-02-18 
T-SQL 大数据量删除优化方案SQL 2008 R2 数据库表中有数据百万级然后每次要根据where 删除其中的数据,条件

T-SQL 大数据量删除优化方案
SQL 2008 R2 数据库
表中有数据百万级
然后每次要根据where 删除其中的数据,条件各参数都不同,删除量在10W-20W。
依次执行DELETE效率太低下,求高效率方法:
现语句:DELETE FROM [Temp] WHERE [ID] = '299897' AND [OrdID] = 'X-UUDX' AND [WhereTYPE] = 'XY'

[解决办法]
那还不简单:
1、select * into #t from tb where xxxx  --这里是不要删除的数据
2、trucate table tb
3、insert into tb select * from #t
4、drop table #t
[解决办法]

WHILE 1 = 1
BEGIN
DELETE TOP(5000) FROM [Temp] WHERE [ID] = '299897' AND [OrdID] = 'X-UUDX' AND [WhereTYPE] = 'XY'

  IF @@rowcount < 5000 BREAK;
END
GO

速度不快,但是可以防止锁升级,避免锁表

热点排行