社区
MS-SQL Server
帖子详情
如何在Sql-server中删除大量数据?
bluemouse
2003-05-21 03:54:54
数据库的一个表中有大约500万行数据需要部分删除,但如果简单的执行delete,速度则很慢,几乎不能完成,似乎是写事务日志占用的资源。请问,如何解决这个问题,或者说在delete过程中强制sqlserver不记录日志?
先谢谢了!
...全文
475
11
打赏
收藏
如何在Sql-server中删除大量数据?
数据库的一个表中有大约500万行数据需要部分删除,但如果简单的执行delete,速度则很慢,几乎不能完成,似乎是写事务日志占用的资源。请问,如何解决这个问题,或者说在delete过程中强制sqlserver不记录日志? 先谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
erigido
2003-05-22
打赏
举报
回复
gz
xlhl
2003-05-22
打赏
举报
回复
mark
pengdali
2003-05-22
打赏
举报
回复
SQLServer现有的版本delete就是要写日志的!
yydy
2003-05-22
打赏
举报
回复
先备份保留数据
重新建表
恢复保留数据
一点想法,不知可不可行
bluemouse
2003-05-22
打赏
举报
回复
各位老大,强调一下,我的要求是“部分删除”,多谢!
pengdali
2003-05-21
打赏
举报
回复
exec sp_dboption yourDB,'trunc. log on chkpt.',true
就可以在INSERT,UPDATE,DELETE时不写日志了
to 小黑你没搞错吧!这是截断日志,且只有master可以用
trunc. log on chkpt. 当为 true 时,如果数据库处于日志截断模式,则检查点将截断日志中非活动的部分。只能为 master 数据库设置此选项。
pengdali
2003-05-21
打赏
举报
回复
TRUNCATE TABLE 表名
不会写日志
happydreamer
2003-05-21
打赏
举报
回复
TRUNCATE TABLE 只在事务日志中记录页的释放
可以这样
1.数据库恢复模式改为“简单”模式
2.用bcp将原表需需保留数据到导出b;
3.设置数据库trunc. log on chkp.为true;
4.truncate 原表;
5.bcp b到原表;
6.设置数据库trunc. log on chkp.为false.
exec sp_dboption yourDB,'trunc. log on chkpt.',true
就可以在INSERT,UPDATE,DELETE时不写日志了
lucie
2003-05-21
打赏
举报
回复
另外建一个表,将现有表的结构导过去,然后将有的表删除,再重命名新表就OK了
hater
2003-05-21
打赏
举报
回复
TRUNCATE TABLE table_name
很快
如果一个表中数据都不要了也可以把表新建一次
SORROWAPPLE
2003-05-21
打赏
举报
回复
TRUNCATE TABLE table_name
SQL Server
删除
大量
数据
相关问题
到了年底需要核查
数据
库的日子。今天才核查一个大型
数据
库的时候,发现了一个因为bug未做
删除
写入了一亿条
数据
的表,还好只是一张展示
数据
的表。借这个机会真好来说下
删除
大量
数据
踩过的坑。 Delete SQL语法:Detele 表名 where 条件 优点:按条件
删除
缺点:慢!很慢,而且当
删除
庞大的
数据
时,会强势的占有整张表格,让你什么也干不了。干不了也就算了,执行的
删除
还不能停...
使用SQL Server
删除
大量
数据
无论是清理旧
数据
、执行
数据
迁移还是执行
数据
修复,都可能需要
删除
数据
库
中
的
大量
数据
。如果要
删除
整个表的
数据
,而不仅仅是特定条件下的行,可以使用TRUNCATE TABLE语句。TRUNCATE TABLE语句比DELETE语句更快,因为它不会记录每个
删除
的行,而是直接释放表的空间。示例:使用BATCH DELETE方法批量
删除
名为"Orders"的表
中
订单状态为"已取消"的行。示例:
删除
名为"Orders"的表
中
所有订单状态为"已完成"的行。示例:
删除
名为"Orders"的表
中
的所有
数据
。
SQL Server
大量
数据
秒级插入/新增/
删除
1.快速保存,该方法有四个参数,第一个参数为
数据
库连接,第二个参数为需要保存的DataTable,该参数的TableName属性需要设置为
数据
库
中
目标
数据
表的表名,第三个参数为输出参数,如果保存过程
中
发生错误则错误信息会输出在这个参数里面,第四个参数为可选参数,是否保持连接为打开状态。 ///
/// 快速保存
数据
,自动识别insert和update
SQL Server
删除
大量
数据
锁死
在项目
中
做sql 的优化,有一张表,里面有几千万条记录,查询速度很慢,就想到了分表。 分表后要
删除
原表
中
多余的
数据
,就粗暴的用了 delete from table_name where ldate<'2014-01-01' 执行了2个小时也没有结束,就cancel了这个request, 然后就发现再次查询表就被卡死,一直没有response。又重启了机器,还是不行。 ...
MS-SQL Server
34,876
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章