TRUNCATE和DELETE的用法比較

          使用 TRUNCATE TABLE 刪除所有行

          若要刪除表中的所有行,則 TRUNCATE TABLE 語句是一種快速、有效的方法。TRUNCATE TABLE 與不含 WHERE 子句的 DELETE 語句類似。但是,TRUNCATE TABLE 速度更快,并且使用更少的系統資源和事務日志資源。

          與 DELETE 語句相比,TRUNCATE TABLE 具有以下優點:

          • 所用的事務日志空間較少。
            DELETE 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一個項。TRUNCATE TABLE 通過釋放用于存儲表數據的數據頁來刪除數據,并且在事務日志中只記錄頁釋放。
          • 使用的鎖通常較少。
            當使用行鎖執行 DELETE 語句時,將鎖定表中各行以便刪除。TRUNCATE TABLE 始終鎖定表和頁,而不是鎖定各行。
          • 如無例外,在表中不會留有任何頁。
            執行 DELETE 語句后,表仍會包含空頁。例如,必須至少使用一個排他 (LCK_M_X) 表鎖,才能釋放堆中的空表。如果執行刪除操作時沒有使用表鎖,表(堆)中將包含許多空頁。對于索引,刪除操作會留下一些空頁,盡管這些頁會通過后臺清除進程迅速釋放。

          與 DELETE 語句相同,使用 TRUNCATE TABLE 清空的表的定義與其索引和其他關聯對象一起保留在數據庫中。如果表中包含標識列,該列的計數器將重置為該列定義的種子值。如果未定義種子,則使用默認值 1。若要保留標識計數器,請使用 DELETE。

          posted on 2009-12-03 22:44 飛熊 閱讀(538) 評論(0)  編輯  收藏 所屬分類: ORACLE

          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 崇阳县| 神池县| 玛纳斯县| 那坡县| 沙洋县| 齐齐哈尔市| 潜山县| 原平市| 天柱县| 彩票| 巴彦淖尔市| 旬邑县| 屏边| 西充县| 桐梓县| 湖口县| 汕尾市| 芜湖县| 阿鲁科尔沁旗| 东乌珠穆沁旗| 绩溪县| 天水市| 红原县| 芜湖县| 金沙县| 巴林右旗| 民丰县| 民县| 营山县| 泽州县| 北安市| 双柏县| 托里县| 玉环县| 抚州市| 鄢陵县| 湘潭县| 鄂州市| 普陀区| 榆社县| 额敏县|