文章列表
这篇笔记是本人两年来根据一本Oracle SQL优化的书以及平时的积累所写成,用于自己查找,如果有纰漏,望读者能反馈给我,也希望能帮到你。
1. ORACLE的优化器共有3种:a. RBO (RULE BASED OPTIMIZER)(基于规则) b. CBO (COST BASED OPTIMIZER)(基于成本) c. CHOOSE (选择性)
2. ORACLE 采用两种访问表中记录的方式:
a. 全表扫描
全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.
例如:
view source
prin ...
这里是将几个医院的所有医生信息,填写入Excel后,导入到Oracle。当然,oracle不能直接读取Excel的内容,但我们可以转弯来实现。
可以简单的认为,Excel表中的内容一一对应于数据库中一个表的字段,一一插入即可。实际当中可能不会这么简单,但原理一样,如果有关联表,需要插入后生成的字段id,则设置为主键,
利用索引,获取当前值即可继续操作;原理一样。
如果你的团队也是分工协作的,Excel里面的格式如下所示:
每一行为一个医生的信息。如果你的团队也是分工协作的,那将这个格式给相应的人员,让他们将数据录入其中即可。我们开始考虑怎么让他们导入表中。
导入表,无非是一系列的 ...
最近碰到一个很有意思的问题,就是关于在oracle中几天之后的实现问题。有很多程序员应该都是这么写的, 比如说是判断某个订单提交7天后的状态,
case when to_date(nvl(submitdate,'1988-02-02'),'yyyy-mm-dd') + 7>=trunc(sysdate) then 1 else 0 end
因为都会想到,提交时间加上7天,如果大于今天,则即为7天以后,这可能是思维定势吧,刚开始的时候都认为是对的,我也是,但仔细想想,就会发现问题
比如提交日期是9月1日,7天后是9月8日,今天就是9月8号,那明天的时候,7天已过,到底是谁大于谁呢?
呵呵,想 ...