在sql server数据库中快速删除记录,清空表
生活随笔
收集整理的這篇文章主要介紹了
在sql server数据库中快速删除记录,清空表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
若要刪除表中的所有行,則 TRUNCATE TABLE 語句是一種快速、無日志記錄的方法。TRUNCATE TABLE 與不含有 WHERE 子句的 DELETE 語句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系統資源和事務日志資源。
格式:TRUNCATE TABLE [表名]
與 DELETE 語句相比,TRUNCATE TABLE 具有以下優點:
所用的事務日志空間較少。 DELETE 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放用于存儲表數據的數據頁來刪除數據,并且在事務日志中只記錄頁釋放。使用的鎖通常較少。 當使用行鎖執行 DELETE 語句時,將鎖定表中各行以便刪除。TRUNCATE TABLE 始終鎖定表和頁,而不是鎖定各行。如無例外,在表中不會留有任何頁。執行 DELETE 語句后,表仍會包含空頁。例如,必須至少使用一個排他 (LCK_M_X) 表鎖,才能釋放堆中的空表。如果執行刪除操作時沒有使用表鎖,表(堆)中將包含許多空頁。對于索引,刪除操作會留下一些空頁,盡管這些頁會通過后臺清除進程迅速釋放。
與 DELETE 語句相同,使用TRUNCATE TABLE 清空的表的定義與其索引和其他關聯對象一起保留在數據庫中。
特別注意:TRUNCATE TABLE 刪除表中的所有行,新行標識所用的計數值重置為該列的種子。
- 上一篇: 被骂2年的红米9A,不仅干翻了迭代,还在
- 下一篇: java 内部类 线程_java多线程基