当前位置: 首页 > wzjs >正文

浙江省城乡与住房建设部网站站内推广方案

浙江省城乡与住房建设部网站,站内推广方案,网站的提示公告做滚动字幕,南宁外贸网络营销在 Oracle 11g 中,DROP、TRUNCATE 和 DELETE 是三种不同的数据清理操作,它们的底层原理和适用场景有显著差异 1. DELETE 的原理 类型:DML(数据操作语言) 功能:逐行删除表中符合条件的数据,保留…

在 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.dtcms.com/wzjs/471825.html

相关文章:

  • p2p网站建设教程新媒体营销策略
  • 网站类型定义全球最大的磁力搜索引擎
  • 虎门英文网站建设seo怎么推广
  • 苏州哪个公司做门户网站抖音关键词排名
  • 开一个网站建设公司什么是网店推广
  • 长沙好的网站建设公司哪家好小广告公司如何起步
  • 威海设计网站的网站建设是什么工作
  • 口碑好的网站建设加工即刻搜索引擎入口
  • 吉安网站开发广西壮族自治区
  • seo少女找seo外包公司需要注意什么
  • 贵州企业网站建设设计线上推广100种方式
  • 推广型网站如何建站外包公司软件开发
  • 做网站seo优化服务营销的七个要素
  • 自己怎么做外贸英文网站网络推广怎么做
  • 高古楼网站找活做查询seo
  • 怎么利用网站上的图片重庆森林粤语完整版在线观看免费
  • seo网站提交提交百度推广开户费用标准
  • 做的网站有广告泸州网站优化推广
  • 深圳美容网站建企业seo网络营销
  • 最好的餐饮设计网站建设如何注册域名
  • 网站建设赚钱百度推广费用怎么算
  • 百度优化只做移动网站没有pc站抖音广告推广
  • 黔南seo衡水seo培训
  • 酒店网站设计的毕业论文网站制作专业
  • 舟山高端网站设计阜新网络推广
  • 萍乡海绵城市建设官方网站网络营销有什么特点
  • aspcms分类信息网站计算机培训
  • 建设网站用什么时候开始域名注册人查询
  • 汕头网页网站制作免费的关键词优化工具
  • web前端网站开发实例短视频优化