sql server快速删除记录方法

数据库 SQL Server
使用TRUNCATE TABLE语句可以快速、无日志记录删除表中的所有行,与DELETE 语句相比,TRUNCATE TABLE无疑具有更多优点。

TRUNCATE TABLE 与DELETE 语句相比,所用的事务日志空间较少、使用的锁通常较少,是SQL中快速、无日志记录删除表中的所有行最常用的方法之一。

若要删除SQL表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系统资源和事务日志资源。

与SQL中DELETE 语句相比,TRUNCATE TABLE 具有以下优点:

所用的事务日志空间较少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。

使用的锁通常较少。

当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。

如无例外,在表中不会留有任何页。

执行 DELETE 语句后,表仍会包含空页。例如,必须至少使用一个排他 (LCK_M_X) 表锁,才能释放堆中的空表。如果执行删除操作时没有使用表锁,表(堆)中将包含许多空页。对于索引,删除操作会留下一些空页,尽管这些页会通过后台清除进程迅速释放。

与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义与其索引和其他关联对象一起保留在数据库中。
 

责任编辑:段燃 来源: IT168
相关推荐

2009-04-16 15:26:32

Sql Server记录总数聚簇索引

2010-09-02 11:38:44

SQL删除

2010-07-02 13:50:11

SQL Server数

2010-10-20 10:19:33

sql server删

2010-11-10 11:54:32

SQL SERVER删

2010-11-10 13:03:15

SQL Server存

2011-04-06 16:25:47

SQL Server

2010-12-21 09:47:45

SQL Server

2010-11-10 11:51:04

SQL SERVER级

2010-09-03 13:51:10

SQL删除约束

2010-09-02 11:34:51

SQL删除

2011-03-28 09:40:41

2010-11-11 10:53:22

SQL Server遍

2010-10-22 17:14:03

SQL Server删

2010-07-26 17:00:11

SQL Server查

2010-09-03 11:05:59

SQL删除

2010-11-10 13:42:32

SQL Server删

2010-11-12 11:44:37

SQL Server删

2009-05-06 14:03:13

SQL Server日志log

2010-09-08 13:21:19

SQL删除约束
点赞
收藏

51CTO技术栈公众号