Oracle性能调整与优化(二)
2008-12-04 13:02:17 来源:WEB开发网核心提示: 查询1select d.department_id,d.department_name,r.region_namefrom departments d,locations l,countries c, regions rwhere d.location_id=l.location_idan
查询1
select d.department_id,
d.department_name,
r.region_name
from departments d,
locations l,
countries c, regions r
where d.location_id=l.location_id
and l.country_id=c.country_id
and c.region_id=r.region_id;
和
select department_id,
department_name,
region_name
from departments natural join locations
natural join countries natural join regions;
这产生了四个问题。
1、这些查询的查询结果集一致吗?
2、如果它们是一致的,你能预计在它们的执行计划中有什么不同吗?
3、如果这些执行计划一致,是什么使得这些查询不同?
4、能做些什么事情来改善成本(cost)?
第一个问题的答案是“是”,它们的查询结果集是一致的;第二个问题的答案是“不能”,因为相同的步骤是连接表;第三个问题的答案需要处理输入的数量或涉及的编码。
在这个例子中关键词“自然连接(natural join)”,“join on”,“左/右 外连接(right/left outer join)”的使用是怎么回事,如果你懂得什么是自然连接(仍然连接两个表,但是涉及到的列名是相同的),看起来使用第二个查询不是更容易了吗?
下面展示的是验证第二个问题的答案。
查询1的执行计划
查询2的执行计划
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接