环境准备:建主从表,主表dept,子表emp及主外键约束 ======================================================================
====================================================================== 第一方面,主表做删除的影响。
===================== 下面是sql_trace里的内容 ===========================
说明在主表删除时,会查询所有子表,看是否有引用的数据,如果子表的外键没有索引,则会发生全表扫描子表,如果子表很多、记录也很多,那么在Oracle里则是删除非常慢,在db2里会发生日志空间满的情况,还有锁定超时等引发911错误等。 象Fmis3.0的帐套、体系版本等,删除就会出现问题,就是因为有些子表的外键没有建索引。 第二方面,主表的主键若做更新,同样会扫描所有子表,如果子表外键没索引,则全表扫描:
=============== sql_trace内容 ================
第三方面的影响是 主、从表的join emp表的deptno没建索引前的查询:
建索引后
|
案例分析1:为什么强烈建议所有的外键要加索引
最新推荐文章于 2021-12-26 10:24:27 发布