回覆列表
  • 1 # 值得一看的職場那些事

    truncate操作同沒有where條件的delete操作十分相似。

    1、無論truncate大表還是小錶速度都非常快。delete要產生回滾資訊來滿足回滾需求,而truncate是不產生的。

    2、truncate是DDL語句進行隱式提交,不能進行回滾操作。

    3、truncate重新設定表和索引的HWM(高水標記),由於全表掃描和索引快速掃描都要讀取所有的資料塊知道HWM為止。所以全表掃描的效能不會因為delete而提高,但是經過truncate操作後速度會很快。

    4、truncate不觸發任何delete觸發器。

    5、不能賦給某個使用者truncate其它使用者表的許可權。如果需要trucate其它使用者表的許可權必須對該使用者賦DROP ANY TABLE許可權。

    6、當表被truncate後,這個表和索引所佔用的空間會恢復到初始大小,而delete操作不會減少表或索引所佔用的空間。

    7、不能truncate一個帶有外來鍵的表,如果要刪除首先要取消外來鍵,然後再刪除。TRUNCATE和DELETE有以下幾點區別1、TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷。2、TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。3、TRUNCATE將重新設定高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過TRUNCATE操作後的表比DELETE操作後的表要快得多。4、TRUNCATE不能觸發任何DELETE觸發器。5、不能授予任何人清空他人的表的許可權。6、當表被清空後表和表的索引講重新設定成初始大小,而delete則不能。7、不能清空父表。 TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE 在預設是 DROP STORAGE 當使用DROP STORAGE時將縮短表和表索引,將表收縮到最小範圍,並重新設定NEXT引數。REUSE STORAGE不會縮短表或者調整NEXT引數在特殊情況下使用 REUSE STDELETE語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。TRUNCATE TABLE 則一次性地從表中刪除所有的資料頁並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。 baidu上已經很詳細了,不明白你要知道更多什麼?在什麼情況下使用?

  • 中秋節和大豐收的關聯?
  • 最新的德國大眾旗下品牌有多少?