Oracle 避免在查询中使用函数
2015-06-29 16:32
441 查看
-- Start
一个查询可能要搜索上百万行数据,在查询中使用函数就可能被调用上百万次,这会严重影响性能,下面是一个简单的例子。
-- 更多参见:Oracle SQL 优化精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-29
-- Created by ShangBo on 2015-06-29
-- End
一个查询可能要搜索上百万行数据,在查询中使用函数就可能被调用上百万次,这会严重影响性能,下面是一个简单的例子。
-- 创建表 CREATE TABLE Department ( Department_Id NUMBER(9,0), Department_Name VARCHAR2(40) ); CREATE TABLE Employee ( Employee_id NUMBER(9,0), Employee_Name VARCHAR2(40), Department_Id NUMBER(9,0) ); -- 定义函数 CREATE OR REPLACE FUNCTION getDepartmentNameById( DepartmentId number ) RETURN varchar2 AS DepartmentName VARCHAR2(40); BEGIN select Department_Name into DepartmentName from Department where Department_Id = DepartmentId; return DepartmentName; END; -- 查询 SQL -- 使用函数 SELECT getDepartmentNameById(Department_Id) DepartmentName, Employee_Name FROM Employee; -- 查询 SQL -- 使用表连接 SELECT d.Department_Name, e.Employee_Name FROM Department d, Employee e WHERE d.Department_Id = e.Department_Id;
-- 更多参见:Oracle SQL 优化精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-29
-- Created by ShangBo on 2015-06-29
-- End
相关文章推荐
- oracle合并查询
- oracle合并查询
- Oracle创建新用户的相关操作及问题
- oracle恢复删除的数据
- oracle分页查询
- oracle分页查询
- oracle分页查询
- oracle分页查询
- Oracle 树操作
- 调整oracle mysql字体
- oracle排序操作
- Oracle 基础篇 --- 约束
- oracle的存储过程写法以及调用,各种游标的介绍(静态,动态,sys游标的区别)
- Oracle 11gR2重建用户及其所有表
- ORACLE自动断开数据库连接解决办法
- Oracle 11g数据导入到10g
- oracle 性能优化建议小结
- OracleSQL运算符优先级
- Oracle函数返回表类型
- Java+Oracle实现事务——JDBC事务