如何迅速删除sql server中的几十万条数据

时间:2021-04-29 23:26:54
现在删除半天没反应,到最后还告诉你删除失败

14 个解决方案

#1


直接drop table
再重建表

#2


可不可以直接把那几个日志文件做掉?

我是新手,只是猜猜看

#3


若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。该语句总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除操作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的数据和索引占用的所有空间。所有索引的分发页也将释放。

与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。必须使用 DROP TABLE 语句才能除去表的定义。

#4


Use trunc table name 這種方法是最好的,因為沒有對表進行掃描.

#5


好办法,但是我不是要删除全部记录,只删除其中一部分,请问有没有解决的方法

#6


或者说,分成若干次删除,不知道会不会更好些

#7


把表上的外键,触发器和索引先去掉,删除数据后再重建

#8


要删除的占全部记录的多少?

#9


分几次删除也好,避免因为回滚断过小出错

#10


trucate table tablename 删除表中所有数据,不可恢复,除非有备份

#11


要删除的是一个条件决定的,数量不确定

#12


那就只好分段了,先select count(1)to rows 统计一下有多少条,
然后for i in 1..10 loop
     delete ... where 相应条件||and rownum < rows/10+1
     commit;
   end loop;

#13


drop table 是好方法

#14


to:icevi
记得前一段听说你离开成都,以为不会回来CSDN了.
以后会常来吗?

#1


直接drop table
再重建表

#2


可不可以直接把那几个日志文件做掉?

我是新手,只是猜猜看

#3


若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。该语句总是比不带条件的 DELETE 语句要快,因为 DELETE 语句要记录对每行的删除操作,而 TRUNCATE TABLE 语句只记录整个数据页的释放。TRUNCATE TABLE 语句立即释放由该表的数据和索引占用的所有空间。所有索引的分发页也将释放。

与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。必须使用 DROP TABLE 语句才能除去表的定义。

#4


Use trunc table name 這種方法是最好的,因為沒有對表進行掃描.

#5


好办法,但是我不是要删除全部记录,只删除其中一部分,请问有没有解决的方法

#6


或者说,分成若干次删除,不知道会不会更好些

#7


把表上的外键,触发器和索引先去掉,删除数据后再重建

#8


要删除的占全部记录的多少?

#9


分几次删除也好,避免因为回滚断过小出错

#10


trucate table tablename 删除表中所有数据,不可恢复,除非有备份

#11


要删除的是一个条件决定的,数量不确定

#12


那就只好分段了,先select count(1)to rows 统计一下有多少条,
然后for i in 1..10 loop
     delete ... where 相应条件||and rownum < rows/10+1
     commit;
   end loop;

#13


drop table 是好方法

#14


to:icevi
记得前一段听说你离开成都,以为不会回来CSDN了.
以后会常来吗?