Oracle 尽量避免在SQL语句中使用 OR
2015-06-19 14:01
477 查看
-- Start
在SQL 语句中应该尽量避免使用OR,因为这样做会影响SQL 语句的性能。考虑下面的情况:
现在有这样一个问题:让你查找一下生日是1949-10-1(共和国同龄人)或1978-12-18(十一届三中全会召开时间)的人,怎么办?我们很自然就会把这句话翻译成如下SQL 语句:
这样做完全正确,可是性能不好,你的思想被这个问题束缚了,我们还可以这么写:
有时候,我们不要把自己束缚在问题里面。
-- 更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-19
-- Created by ShangBo on 2015-06-19
-- End
在SQL 语句中应该尽量避免使用OR,因为这样做会影响SQL 语句的性能。考虑下面的情况:
CREATE TABLE EMPLOYEE ( NAME VARCHAR2(20) NOT NULL,---姓名 BIRTHDAY DATE---生日 );
现在有这样一个问题:让你查找一下生日是1949-10-1(共和国同龄人)或1978-12-18(十一届三中全会召开时间)的人,怎么办?我们很自然就会把这句话翻译成如下SQL 语句:
SELECT * FROM EMPLOYEE WHERE BIRTHDAY = DATE '1949-10-01' OR BIRTHDAY = DATE '1978-12-18';
这样做完全正确,可是性能不好,你的思想被这个问题束缚了,我们还可以这么写:
SELECT * FROM EMPLOYEE WHERE BIRTHDAY IN (DATE '1949-10-01',DATE '1978-12-18');
有时候,我们不要把自己束缚在问题里面。
-- 更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-19
-- Created by ShangBo on 2015-06-19
-- End
相关文章推荐
- Oracle 9i+PLSQL客户端安装教程
- Oracle IN 与 DISTINCT
- Oracle 采集样本数据
- oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
- Oracle 在 ORDER BY 子句中加入主键或唯一键
- Oracle 多字段查询
- Oracle 相关子查询
- Oracle VM VirtualBox +ubuntu server 搭建虚拟服务器局域网
- Oracle--常见Exception
- Oracle同义词创建及其作用
- oracle在schema是什么意思?
- 恢复oracle中误删除drop掉的表
- oracle ORA-01000: maximum open cursors exceeded问题的解决方法
- Oracle 数据库安装
- Oracle 执行计划查看方式
- Oracle停掉一个正在运行的job
- oracle 表查询(1)
- ORACLE定期清理INACTIVE会话
- oracle 表的管理(数据类型,表创建删除,数据CRUD 操作)
- Oracle 常见等待事件