如何删除正在使用着表的数据

weixin_31013737 2016-06-29 07:13:20
数据库访问量大,速度已经很慢了。在这种情况下,想对一个正在使用着的大表的历史数据删除。这种情况应该如何删除这个表的数据,有什么好的方法尽量不会影响正常业务
...全文
611 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiezhang__zj 2016-08-08
  • 打赏
  • 举报
回复
没分区批量delete
AHUA1001 2016-07-19
  • 打赏
  • 举报
回复
给你一个存储过程,传入表名和查询条件,就可以高效的删数据。
足球不是方的 2016-06-29
  • 打赏
  • 举报
回复
declare @n int=1; while (@n<100) begin SET ROWCOUNT 100000; BEGIN TRAN DELETE FROM t1; COMMIT IF @@ROWCOUNT = 0 BREAK; SET ROWCOUNT 0; set @n=@n+1 waitfor delay '00:00:02' ; end 循环删除,每次删除100000。 你可以先看看每次删除多少不会引起表锁,改下SET ROWCOUNT 后面的数。
卖水果的net 2016-06-29
  • 打赏
  • 举报
回复
分批删除, 一次删除 300、500 ,删除后马上 commit ;
js14982 2016-06-29
  • 打赏
  • 举报
回复
有分区可以删除历史分区。没分区就分批delete吧
桃花岛黄岛主 2016-06-29
  • 打赏
  • 举报
回复
删除没有问题,但对你的业务访问没有影响,你可以了解一下什么叫水位

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧