sql server中如何快速批量删除表里的百万条记录!直接用delete top(50000)还是有点慢...

 我来答
黄孟先生
推荐于2017-11-28 · TA获得超过1550个赞
知道大有可为答主
回答量:1381
采纳率:50%
帮助的人:1123万
展开全部
删除大量数据速度是正常的。
如果表里面数据都不要了,可以直接truncate
如果表里面数据只有一小部分要得,可以把小的备份出来,然后truncate表,然后再把备份的数据导回来
如果只是删除表中部分数据,可以写成循环小批量删除脚本;如果服务器性能好,百万数据删除还是很快的
云天英雄
2013-02-23 · TA获得超过3743个赞
知道大有可为答主
回答量:5976
采纳率:40%
帮助的人:2754万
展开全部
看需要删除的记录占该表的比例,如果全部不要则直接truncate;如果小部分要保留则可以复制需要保留的到新表,然后truncate,再将新表的数据复制回原表;如果需要删除的记录只是表中的一小部分,则可以通过脚本循环精准定位删除。当然如果一个表非常大,建议建立分区表方便大量的记录删除等操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baiynijecym
2013-02-22 · TA获得超过1841个赞
知道大有可为答主
回答量:1411
采纳率:66%
帮助的人:1160万
展开全部
如果是该表的数据全部删除的话可以按szm341说的直接用truncate table 清空表,如果只是部分删除,而且保留的数据比较少的话可以先将保留的数据导出或存到一个临时表中,然後用truncate table 清空表,再将需要的数据导入即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-02-22 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5134万
展开全部
如果是清空表的话可以用truncate table tbname
如果删除指定数据的话还是用循环delete top吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1abcca7
2013-02-22 · TA获得超过163个赞
知道小有建树答主
回答量:372
采纳率:100%
帮助的人:203万
展开全部
drop table
然后在重建不就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式