2010-08-10 101 views
0

可能重复:
SQL Server - bulk delete (truncate vs delete)
What’s the difference between TRUNCATE and DELETE in SQL什么是截断表A和删除的区别从A

什么是截断表A,从A删除之间的差异?哪一个更好用于删除表中的记录。

+0

参见http://stackoverflow.com/questions/139630/whats-the-difference-between-truncate-and-delete-in-sql – 2010-08-10 07:42:47

+0

的重复[SQL服务器 - 批量删除(截断VS删除)] (http://stackoverflow.com/questions/1772984/sql-server-bulk-delete-truncate-vs-delete)和吨其他问题..... – 2010-08-10 07:43:11

回答

0

这个答案可以在Microsoft文档中很容易找到对TRUNCATE table

相比DELETE语句,TRUNCATE TABLE具有以下优点:使用

  • 较少的事务日志空间。 DELETE语句一次删除一行,并在每个删除行的事务日志中记录一个条目。 TRUNCATE TABLE通过释放用于存储表数据的数据页来删除数据,并仅在事务日志中记录页解除分配。
  • 通常使用较少的锁。当使用行锁执行DELETE语句时,表中的每一行都被锁定以供删除。 TRUNCATE TABLE总是锁定表格和页面,但不是每行。
  • 毫无例外地,表中还剩下零页。执行DELETE语句后,表格仍可以包含空白页面。例如,如果没有至少一个独占(LCK_M_X)表锁,堆中的空页将无法解除分配。如果删除操作不使用表锁,表(堆)将包含许多空白页。对于索引,删除操作可以留下空白页面,但这些页面将通过后台清理过程快速解除分配。
相关问题