Oracle 尽量避免在SQL语句中使用 OR
16lz
2021-01-22
-- Start
在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 byShangBo on2015-06-19
-- End
更多相关文章
- SQL Server调优系列进阶篇(查询语句运行几个指标值监测)
- Mysql完全手册(笔记二,使用数据与性能优化)
- 使用navicat for mysql 将查询语句过滤的结果导出成insert语句时
- oracle新接触的sql语句
- 求查询成绩表中两门科成绩90分以上的学生学号的SQL语句?
- mysql常用命令/语句学习三
- StringBuilder 拼接sql语句比较快
- 求一SQL语句(如何按某列的值分组且取出每组前几行的数据)
- 1)如何用语句来查看一个表内是否建了索引2)或用plsql查看一个表