
写在前面:小编的话

删除大量行可能会很慢。并且有可能需要更长的时间,因为另一个会话已锁定您要删除的数据。幸运的是,有一个技巧可以加快这个过程:把 DML 变成 DDL!
在正式上课之前,我们还是要强调一下如何学习这些课程。我们做的最主要的工作是将Dev Gym上的视频翻译为中文。实际上每一节课包括4部分:
1)看我们翻译的视频,每一集只有几分钟。
2)上Live SQL做配套练习
3)小测验(选择题)
4)进一步学习(参考资料)
这4部分都是精心设计的,特别是第2和3部分,非常有助于对课程内容的理解,而且由于原网站有完整的评分积分,因此我们希望您在看完视频后,仍回到Dev Gym(https://devgym.oracle.com/)网站完成练习和测验,而且最终可以得到结业证书。点击文末“原文链接”可访问原课程页面。
以下为开发者性能课的课程设置:
第1课: 如何解读执行计划
第2课: 什么是数据库统计信息?
第3课: 我的查询做了多少工作?
第4课: 如何创建索引
第5课: 为什么我的查询不使用索引?
第6课: 如何使用物化视图快速汇总数据
第7课: 联结如何工作?
第8课: 如何更快地插入、更新和删除 <- 我们在这里
第9课: 如何查找慢 SQL
好了,下面正式开始上课。
Oracle开发者性能第8课:如何更快地插入、更新和删除

写在后面:小编的话

本课程介绍了在Oracle 数据库中可以使用哪些替代方案来更快地删除行:
truncate快速删除所有行
用create-table-as-select删除表中大部分数据
删除或截断分区
使用过滤表移动 (filtered table move)
其中第4种方法是Oracle 12.2的新特性,建议大家尝试一下。
本课程的配套练习,大家也可以参见小编的实验笔记(1)。以及Oracle LiveSQL中的实验:DDL Methods to Delete Rows(2)。作者也有一篇博客与本视频对应,请参见文章How to Delete Millions of Rows Fast with SQL(3)。
好了,今天的课程就到这里,祝大家学习愉快!
参考链接:
(1) https://xiaoyu.blog.csdn.net/article/details/121054728
(2) https://livesql.oracle.com/apex/livesql/file/content_JNHQ1HXN5WFLF7WWBTEXG7EBJ.html
(3) https://blogs.oracle.com/sql/post/how-to-delete-millions-of-rows-fast-with-sql
编辑,字幕翻译:萧宇
字幕制作&版式设计:Barbara Huang





