使用SQL中TRUNCATE TABLE語(yǔ)句進(jìn)行快速刪除
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
在SQL數(shù)據(jù)庫(kù)中,不適用DELETE語(yǔ)句,一樣可以刪除表中的數(shù)據(jù),下面就將為您介紹使用SQL中TRUNCATE TABLE語(yǔ)句進(jìn)行快速刪除的方法。 若要?jiǎng)h除表中的所有行,則 TRUNCATE TABLE語(yǔ)句是一種快速、無(wú)日志記錄的方法。TRUNCATE TABLE語(yǔ)句與不含有 WHERE 子句的 DELETE 語(yǔ)句在功能上相同。但是,TRUNCATE TABLE語(yǔ)句速度更快,并且使用更少的系統(tǒng)資源和事務(wù)日志資源。 與 DELETE 語(yǔ)句相比,TRUNCATE TABLE語(yǔ)句具有以下優(yōu)點(diǎn): 所用的事務(wù)日志空間較少。 DELETE 語(yǔ)句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE 通過(guò)釋放用于存儲(chǔ)表數(shù)據(jù)的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并且在事務(wù)日志中只記錄頁(yè)釋放。 使用的鎖通常較少。 當(dāng)使用行鎖執(zhí)行 DELETE 語(yǔ)句時(shí),將鎖定表中各行以便刪除。TRUNCATE TABLE 始終鎖定表和頁(yè),而不是鎖定各行。 如無(wú)例外,在表中不會(huì)留有任何頁(yè)。 執(zhí)行 DELETE 語(yǔ)句后,表仍會(huì)包含空頁(yè)。例如,必須至少使用一個(gè)排他 (LCK_M_X) 表鎖,才能釋放堆中的空表。如果執(zhí)行刪除操作時(shí)沒(méi)有使用表鎖,表(堆)中將包含許多空頁(yè)。對(duì)于索引,刪除操作會(huì)留下一些空頁(yè),盡管這些頁(yè)會(huì)通過(guò)后臺(tái)清除進(jìn)程迅速釋放。 與 DELETE 語(yǔ)句相同,使用 TRUNCATE TABLE語(yǔ)句清空的表的定義與其索引和其他關(guān)聯(lián)對(duì)象一起保留在數(shù)據(jù)庫(kù)中。 該文章在 2011/5/4 23:08:46 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |