赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

通过分析SQL语句的执行计划优化SQL(11)

发布时间:2007.08.10 05:00     来源:赛迪网    作者:limeinan

总结一下,在哪种情况下用哪种连接方法比较好:

排序 - - 合并连接:

(a) 对于非等值连接,这种连接方式的效率是比较高的。

(b) 如果在关联的列上都有索引,效果更好。

(c) 对于将2个较大的row source做连接,该连接方法比NL连接要好一些。

(d) 但是如果sort merge返回的row source过大,则又会导致使用过多的rowid在表中查询数据时,数据库性能下降,因为过多的I/O。

嵌套循环

(a) 如果driving row source(外部表)比较小,并且在inner row source(内部表)上

有唯一索引,或有高选择性非唯一索引时,使用这种方法可以得到较好的效率。

(b) NESTED LOOPS有其它连接方法没有的的一个优点是:可以先返回已经

连接的行,而不必等待所有的连接操作处理完才返回数据,

这可以实现快速的响应时间。

哈希连接(Hash Join, HJ):

(a) 这种方法是在oracle7后来引入的,使用了比较先进的连接理论,

一般来说,其效率应该好于其它2种连接,但是这种连接只能用在

CBO优化器中,而且需要设置合适的hash_area_size参数,

才能取得较好的性能。

(b) 在2个较大的row source之间连接时会取得相对较好的效率,在一个

row source较小时则能取得更好的效率。

(c) 只能用于等值连接中

笛卡儿乘积

当两个row source做连接,但是它们之间没有关联条件时,就会在两个row source中做笛卡儿乘积,这通常由编写代码疏漏造成(即程序员忘了写关联条件)。笛卡尔乘积是一个表的每一行依次与另一个表中的所有行匹配。在特殊情况下我们可以使用笛卡儿乘积,如在星形连接中,除此之外,我们要尽量使用笛卡儿乘积,否则,自己想结果是什么吧!

注意在下面的语句中,在2个表之间没有连接。

SQL> explain plan for
select emp.deptno,dept,deptno 
from emp,dept

Query Plan
------------------------------
SLECT STATEMENT [CHOOSE] Cost=5
  MERGE JOIN CARTESIAN
    TABLE ACCESS FULL DEPT
    SORT JOIN
      TABLE ACCESS FULL EMP

CARTESIAN关键字指出了在2个表之间做笛卡尔乘积。假如表emp有n行,dept表有m行,笛卡尔乘积的结果就是得到n * m行结果。 (责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· SQL Server开发人员应聘经常被问的问题 (08-09) · 教你怎样把Oracle查询转换为SQL Server (08-09)
· 运用SQL Server安全模型来保护你的数据 (08-08) · 解析SQL Server中数据库快照的工作原理 (08-08)
· 细化解析:SQL Server数据库的集群设计 (08-08) · 通过分析SQL语句的执行计划优化SQL(十) (08-08)
· 几条相对于SQL Server的潜威胁判断 (08-08) · SQL依然是数据库市场上的No.1 (08-08)
· SQL开发人员应聘常被问的问题妙解汇总 (08-07) · SQL Server与Oracle并行访问的本质区别 (08-07)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管