日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Oracle中的delete和truncate的关系

發布時間:2024/1/3 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 Oracle中的delete和truncate的关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://chenxy.blog.51cto.com/729966/168459

1、相同點
   a.都可以刪除數據,其中truncate用于全表清空數據,而delete可以選擇的刪除
2、不同點:
   a.回滾,delete支持事物回滾,而truncate不支持。
      延伸:在oracle中事物能回滾,是因為oracle中設計的undo表空間。數據再刪除后仍能回滾是因為把數據放到了undo表空間
     delte屬于DML語言,DML語言需要手動提交事物,可以進行事務回滾
     truncate屬于DDL語言,DDL語言屬于隱式提交事務,因此不能進行回滾
  b.高水線
    oracle中的表用來容納數據的上限。high water mark(可形象理解為水庫的歷史最高水位),一般情況,每次增長為5個數據塊。
     delete操作執行時,不影響數據所占用的數據塊,高水線保持不變
   truncate操作執行時,會釋放數據占用空間。高水線位置下降。也可以通過reuse store 來進行復位
     可以通過數據庫自帶的block命令觀察效果,oracle分配區時默認一次是7+1個,增長是5個.其中一些sql優化是針對數據占用空間來進行的,
       因為在查詢數據時,即使該表沒有數據,但只要占用了數據空間都會進行全表掃描。
  c.空間占用
     delete不會釋放,而truncate則回收了數據空間
  d.效率
     可以通過刪除數據所用時間來比較,結論:truncate>delete,(因為delte把數據放到了undo表空間)

總結

以上是生活随笔為你收集整理的Oracle中的delete和truncate的关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。