【书评:甲骨文查询优化改写】第四章

<强>【书评:甲骨文查询优化改写】第四章

博客文档结构图

【书评:甲骨文查询优化改写】第四章

一。1导读

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ O (∩_∩) O ~:

①检查的特殊用法

②sql优化中使用合并语句代替更新语句(重点)

<强>本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。

一。2实验环境介绍

目标库:11.2.0.3 RHEL6.5

一。3前言

前3章的链接参考相关连接:

【书评:甲骨文查询优化改写】第一章http://blog.itpub.net/26736162/viewspace-1652985/<强>

【书评:甲骨文查询优化改写】第二章http://blog.itpub.net/26736162/viewspace-1654252/<强>

【书评:甲骨文查询优化改写】第三章http://blog.itpub.net/26736162/viewspace-1660422/<强>

今天来写写这本书的第四章的内容,第四章主要讲了更新语句的正确用法,以及<强>什么时候更新语句应改写为合并强,第四章的内容目录如下:

第4章插入,更新与删除

4.1插入新记录

4.2阻止对某几列插入

4.3复制表的定义及数据

4.4与检查选项用限制数据录入

4.5多表插入语句

4.6用其他表中的值更新

4.7合并记录

4.8删除违反参照完整性的记录

4.9删除名称重复的记录

一。4检查的特殊用法

我们知道sysdate不能用于检查约束,但是有这种需求的时候怎么办呢?如下例子利用视图加与检查选项即可解决。

09:39:08完成;创建表到达目标时间(create_date date 检查(create_date比;sysdate));

创建表到达目标时间(create_date date 检查(create_date比;sysdate)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*

误差在1号线:

ora - 02436:日期或系统变量错误检查约束中指定

09:41:56完成;插入(选择empno, ename hiredate斯科特。emp hiredate & lt;=sysdate检查选项)

09:42:13 ,2,值(9999年,“测试”,sysdate + 1);

插入(选择empno、ename hiredate斯科特。emp hiredate & lt;=sysdate检查选项)

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*

误差在1号线:

ora - 01402:视图与检查选项where子句违反

运行:00:00:00.12

09:42:14完成;插入(选择empno, ename hiredate斯科特。emp hiredate & lt;=sysdate检查选项)

09:42:56 ,2,值(9999年,“测试”,sysdate-1);

1行创建。

运行:00:00:00.03

09:42:57完成;

一。5合并语句

关于更新的一个容易出错的地方就是不写在子句,这样的话会更新掉全表的数据,<强>一个技巧就是把中设置的值复制到哪里子句中即可。

另外,建议大家在做多表关联更新的时候修改为合并语句,因为并入语句只访问了一次表:

[oracle@rhel6_lhr ~] sqlplus/美元sysdba

SQL * +:释放11.2.0.3.0生产星期二2015年5月19日10:26:55

版权(c) 1982年,2011年,甲骨文又是;保留所有权利。

连接到:

数据库Oracle 11 g企业版发布11.2.0.3.0——64位生产

分区,自动存储管理、OLAP、数据挖掘

和真实的应用程序中测试选择

10:26:55完成;设置autot;

10:28:05完成;alter table。emp_bk添加dname varchar2(50)默认“无名”;

表已更改。

已用时间:,00:00:01.23

10:30:04完成;更新。emp_bk

10:30:09 ,2,,,,设置一个。dname=(选择b。从lhr.dept_bk b dname b.deptno=a.deptno和b。dname(“会计”、“研究”))

10:30:09 ,3,存在(选择1从lhr.dept_bk b b.deptno=a.deptno和b。dname(“会计”、“研究”))

10:30:09 ,4,,

已更新3行。

已用时间:,00:00:00.05

执行计划

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

计划散列值:3525057516

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

| Id | Operation ,,,,,,,,,| Name ,,| Rows 成本(% CPU) | | |字节Time ,,,|

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

|,,0 |更新STATEMENT ,,|,,,,,,,,|,,,,4 |,,544 |,,,28日,(18)| 00:00:01 |

|,,1 |,UPDATE ,,,,,,,,,,,| EMP_BK |,,,,,,|,,,,,,null

【书评:甲骨文查询优化改写】第四章