Oracle DROP、TRUNCATE 和 DELETE 原理

在 Oracle 11g 中,DROPTRUNCATE?和?DELETE?是三種不同的數據清理操作,它們的底層原理和適用場景有顯著差異

1.?DELETE?的原理

類型:DML(數據操作語言)
功能:逐行刪除表中符合條件的數據,保留表結構。
原理

  • 逐行操作:逐行標記刪除,記錄每行的刪除操作到?undo 段(支持回滾)。

  • 事務性:需顯式提交(COMMIT)或回滾(ROLLBACK),未提交前數據可恢復。

  • 高水位線(HWM):不降低表的 HWM,已刪除數據占用的空間仍被表保留,后續插入可能重用這些空間。

  • 觸發器觸發:會觸發?BEFORE DELETE?和?AFTER DELETE?觸發器。

DELETE FROM employees WHERE department_id = 10; ?-- 刪除部門 10 的員工
ROLLBACK; ?-- 可回滾

適用場景

  • 刪除部分數據(帶?WHERE?條件)。

  • 需要事務控制或觸發器的場景。

注意事項

  • 性能問題:刪除大量數據時生成大量?undo 日志?和?redo 日志,可能導致性能瓶頸。

  • 空間未釋放:表占用的存儲空間不會立即釋放。

2.?TRUNCATE?的原理

類型:DDL(數據定義語言)
功能:快速刪除表中所有數據,保留表結構。
原理

  • 段級操作:直接釋放表的?數據段(刪除所有數據頁),重置 HWM 為初始值。

  • 非事務性:隱式提交,不可回滾(執行后立即生效)。

  • 不記錄日志:僅記錄少量元數據操作日志(不記錄每行刪除的 undo/redo 日志)。

  • 不觸發觸發器:不會觸發任何?DELETE?觸發器。

TRUNCATE TABLE employees; ?-- 清空表數據

適用場景

  • 快速清空大表所有數據。

  • 需要釋放表占用的存儲空間。

注意事項

  • 權限要求:需要?DROP ANY TABLE?權限。

  • 無法恢復:數據無法通過回滾恢復,需依賴備份。

  • 外鍵約束:若表是其他表的外鍵父表,需先禁用外鍵約束。

3.?DROP?的原理

類型:DDL(數據定義語言)
功能:徹底刪除表結構及數據,釋放所有關聯對象(索引、約束等)。
原理

  • 元數據刪除:從數據字典(DBA_OBJECTSDBA_TABLES?等)中刪除表的定義。

  • 段釋放:釋放表及其索引、LOB 列等占用的所有存儲空間。

  • 非事務性:隱式提交,不可回滾。

DROP TABLE employees PURGE; ?-- 徹底刪除表(跳過回收站)

適用場景

  • 永久刪除不再需要的表。

  • 清理測試環境中的臨時表。

注意事項

  • 回收站機制:默認情況下,表會被移動到回收站(RECYCLEBIN),可通過?FLASHBACK TABLE?恢復。

  • 依賴對象:刪除表時會級聯刪除索引、觸發器等依賴對象。

三者的核心對比

特性DELETETRUNCATEDROP
操作類型DMLDDLDDL
事務支持支持回滾隱式提交,不可回滾隱式提交,不可回滾
日志生成生成大量 undo/redo 日志僅記錄元數據日志僅記錄元數據日志
性能慢(逐行操作)快(段級操作)快(元數據刪除)
存儲空間釋放不釋放(HWM 不變)釋放(HWM 重置)完全釋放
觸發器觸發觸發不觸發不觸發
恢復方式事務回滾需備份恢復回收站或備份恢復
語法示例DELETE FROM table WHERETRUNCATE TABLE tableDROP TABLE table

4.如何選擇?

  • 刪除部分數據且需回滾?→?DELETE

  • 快速清空大表所有數據?→?TRUNCATE

  • 徹底刪除表及結構?→?DROP

注意事項

  • TRUNCATE?與分區表

    • 可針對單個分區操作:

      ALTER TABLE sales TRUNCATE PARTITION p2020;
  • DROP?的回收站機制

    • 恢復表:

      FLASHBACK TABLE employees TO BEFORE DROP;  -- 從回收站恢復
  • DELETE?的性能優化

    • 分批刪除減少 undo 壓力:

      BEGINLOOPDELETE FROM employees WHERE department_id = 10 AND ROWNUM <= 10000;EXIT WHEN SQL%ROWCOUNT = 0;COMMIT;END LOOP;
      END;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/78777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/78777.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/78777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PCIe 5.0光學SSD原型問世!

近日&#xff0c;Kioxia Corporation&#xff08;鎧俠&#xff09;、AIO Core Co., Ltd. 和 Kyocera Corporation&#xff08;京瓷&#xff09;聯合宣布成功開發了一款支持 PCIe 5.0 接口的光學 SSD 原型。該技術旨在通過光接口替換傳統的電接口&#xff0c;從而顯著增加計算設…

SQL 查詢中涉及的表及其作用說明

SQL 查詢中涉及的表及其作用說明&#xff1a; 涉及的數據庫表 表名別名/用途關聯關系dbo.s_orderSO&#xff08;主表&#xff09;存儲訂單主信息&#xff08;訂單號、日期、客戶等&#xff09;dbo.s_orderdetailSoD&#xff08;訂單明細&#xff09;通過 billid SO.billid 關…

C++學習之金融類安全傳輸平臺項目git

目錄 1.知識點概述 2.版本控制工具作用 3.git和SVN 4.git介紹 5.git安裝 6.工作區 暫存區 版本庫概念 7.本地文件添加到暫存區和提交到版本庫 8.文件的修改和還原 9.查看提交的歷史版本信息 10.版本差異比較 11.刪除文件 12.本地版本管理設置忽略目錄 13.遠程git倉…

【HCIP】GRE VPN實驗筆記

一、實驗拓撲 二、實驗要求 1、按照圖示配置IP地址 2、在R1和R3上配置默認路由使公網區域互通 3、在R1和R3上配置GRE VPN&#xff0c;使兩端私網能夠互相訪問&#xff0c;Tunnel口IP地址如圖 4、在R1和R3上配置RIPv2或者ospf或者靜態&#xff0c;來傳遞兩端私網路由 三、實…

大模型——Llama Stack快速入門 部署構建AI大模型指南

Llama Stack快速入門 部署構建AI大模型指南 介紹 Llama Stack 是一組標準化和有主見的接口,用于如何構建規范的工具鏈組件(微調、合成數據生成)和代理應用程序。我們希望這些接口能夠在整個生態系統中得到采用,這將有助于更輕松地實現互操作性。 Llama Stack 定義并標準化…

ALOPS智能化運維管理平臺

AIOps&#xff08;Artificial Intelligence for IT Operations&#xff09;即智能運維&#xff0c;是將人工智能技術應用于 IT 運維管理領域&#xff0c;以實現自動化、智能化的運維決策和管理。以下是關于 AIOps 的詳細介紹&#xff1a; 核心能力 數據收集與整合&#xff1a…

C語言超詳細指針知識(二)

在上一篇有關指針的博客中&#xff0c;我們介紹了指針的基礎知識&#xff0c;如&#xff1a;內存與地址&#xff0c;解引用操作符&#xff0c;野指針等&#xff0c;今天我們將更加深入的學習指針的其他知識。 1.指針的使用和傳址調用 1.1strlen的模擬實現 庫函數strlen的功能是…

一種替代DOORS在WORD中進行需求管理的方法 (二)

一、前景 參考&#xff1a; 一種替代DOORS在WORD中進行需求管理的方法&#xff08;基于WORD插件的應用&#xff09;_doors aspice-CSDN博客 二、界面和資源 WORD2013/WORD2016 插件 【已使用該工具通過第三方功能安全產品認證】&#xff1a; 1、 核心功能 1、需求編號和跟…

設計模式 Day 6:深入講透觀察者模式(真實場景 + 回調機制 + 高級理解)

觀察者模式&#xff08;Observer Pattern&#xff09;是一種設計結構中最實用、最常見的行為模式之一。它的魅力不僅在于簡潔的“一對多”事件推送能力&#xff0c;更在于它的解耦能力、模塊協作設計、實時響應能力。 本篇作為 Day 6&#xff0c;將帶你從理論、底層機制到真實…

文獻總結:AAAI2025-UniV2X-End-to-end autonomous driving through V2X cooperation

UniV2X 一、文章基本信息二、文章背景三、UniV2X框架1. 車路協同自動駕駛問題定義2. 稀疏-密集混合形態數據3. 交叉視圖數據融合&#xff08;智能體融合&#xff09;4. 交叉視圖數據融合&#xff08;車道融合&#xff09;5. 交叉視圖數據融合&#xff08;占用融合&#xff09;6…

2025藍橋杯python A組題解

真捐款去了&#xff0c;好長時間沒練了&#xff0c;感覺腦子和手都不轉悠了。 B F BF BF 賽時都寫假了&#xff0c; G G G 也只寫了爆搜。 題解其實隊友都寫好了&#xff0c;我就粘一下自己的代碼&#xff0c;稍微提點個人的理解水一篇題解 隊友題解 B 思路&#xff1a; 我…

免費送源碼:Java+ssm+MySQL 校園二手書銷售平臺設計與實現 計算機畢業設計原創定制

摘 要 信息化社會內需要與之針對性的信息獲取途徑&#xff0c;但是途徑的擴展基本上為人們所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人們經常能夠獲得不同類型信息&#xff0c;這也是技術最為難以攻克的課題。針對校園二手書銷售平臺等問題&#xff0c;對校…

工業科學級天文相機:跨界融合的高精密成像解決方案

隨著國內科技的快速發展&#xff0c;工業相機領域正悄然興起一場"天文級"的技術革命。這類兼具工業設備可靠性與天文觀測精度的特殊相機&#xff0c;正在半導體制造、天文觀測、空間探測等領域開辟新的應用疆域。其核心技術突破不僅體現在傳感器性能的提升&#xff0…

論文閱讀筆記——Multi-Token Attention

MTA 論文 在 Transformer 中計算注意力權重時&#xff0c;僅依賴單個 Q 和 K 的相似度&#xff0c;無法有效捕捉多標記組合信息。&#xff08;對于 A、B 兩個詞&#xff0c;單標記注意力需要分別計算兩個詞的注意力分數&#xff0c;再通過后處理定位共同出現的位置或通過多層隱…

301.找出3位偶數

2094. 找出 3 位偶數 - 力扣&#xff08;LeetCode&#xff09; class Solution {List<Integer> resnew ArrayList<>();List<Integer> linew ArrayList<>();public int[] findEvenNumbers(int[] digits) {Arrays.sort(digits);boolean[] numsnew boolea…

【KWDB 創作者計劃】第二卷:開發者實戰篇

?KWDB技術白皮書卷二&#xff1a;開發者實戰篇 ?1. 自然語言到量子查詢的編譯系統 1.1 NL2QSQL翻譯引擎架構 運行時流程圖解&#xff1a; ┌──────────────────────┐ ┌───────────────────┐ ┌─────────────…

前端工程化之新晉打包工具

新晉打包工具 新晉打包工具前端模塊工具的發展歷程分類初版構建工具grunt使用場景 gulp采用管道機制任務化配置與api簡潔 現代打包構建工具基石--webpack基于webpack改進的構建工具rollup 推薦舉例說明package.jsonrollup.config.mjsmy-extract-css-rollup-plugin.mjssrc/index…

ai軟件UI自動化

在AI與UI自動化結合的場景中,通常涉及計算機視覺(CV)、自然語言處理(NLP)和機器學習(ML)等技術。以下是實現AI驅動UI自動化的關鍵方向、工具和步驟: ?一、核心應用場景? ?元素定位增強? ?問題?:傳統工具依賴XPath/CSS選擇器,易因UI變化失效。?AI方案?:CV識別…

關于 C++ 中 cin 對象和 EOF 的詳細解釋

【DeepSeek提問】 給解釋一下下面這段話&#xff08;C編程&#xff09; cin是 iostream 類的一個對象實例&#xff0c;如果輸入正常&#xff0c; cin 將返回本身。 舉個例子&#xff1a;cin>x>>y, 如果 cin>>x 讀入正常&#xff0c;那么將返回cin, 相當于后面繼…

Vue 3 和 Vue 2 的區別及優點

Vue.js 是一個流行的 JavaScript 框架&#xff0c;廣泛用于構建用戶界面和單頁應用。自 Vue 3 發布以來&#xff0c;很多開發者開始探索 Vue 3 相較于 Vue 2 的新特性和優勢。Vue 3 引入了許多改進&#xff0c;優化了性能、增強了功能、提升了開發體驗。本文將詳細介紹 Vue 2 和…