teradata对于表级left outer joinSQL优化.doc

teradata对于表级left outer joinSQL优化.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
teradata对于表级left outer joinSQL优化

teradata对于表级left outer joinSQL优化 teradata对于表级的left outer join的SQL优化行业动态 | 技术文档 | 人才服务 | 培训咨询 | 图书推荐 | 产品目录 | 会员专区 | 网站调查 | 评测中心 | 我的博客 | 论坛 高级搜索 相 关 文 章 SAS数据仓库的体系结构 构建银行数据仓库经验谈 微软DTS开发过程中应该注意的问题 数据仓库项目常见问题具体分析(多个案例) 电信数据仓库中的计费系统 DW项目需求调研方法 数据仓库项目实施注意点 基于知识发现的飞机维修数据仓库模型研究 数据仓库(原书第三版)第三章3.1节 DataWarehouse和DataMart的比较分析 ESSBASE的使用及性能优化 数据仓库技术在现代金融中的应用 当前位置: 首页 技术文档 文章 返回 teradata对于表级的left outer join的SQL优化 作者:fmccbi 日期:2004年08月06日 浏览次数:467   teradata对于表级的left outer join的SQL优化 一般说来: 表和表之间的left outer join主要有四种形式:product join,merge join,hash join和nest join 而较常见的是product join和merge join。 一)product join和merge join的概念 1)product join就是乘积关联,做法是对左表的每一条记录都跟右表的所有记录进行关联(即所说的笛卡尔积),然后根据关联字段,筛出符合关联条件的记录。 此法的缺点是作此关联所付出的系统的CPU和IO代价较大(由于笛卡尔积的关系) 但相对和merge join来说它的优点是左表和右表都不需要排序 因此teradata优化器只在右表记录数和导出字段字节数乘积较小的情况下(一般凭经验,记录数小于25条以下,字段字节数没测过)或者关联条件包含非等式关联或者关联条件中带有OR时才选择product join; 2)merge join就是合并关联,做法是对左右表分别进行排序,然后根据关联条件进行匹配关联。其优点时每一个左表记录只会跟右表的一条或某几条记录进行关联,大大减少了CPU和IO的花费,但缺点是对于右表记录数较少的情况下,对非常大的左表进行排序较浪费数据库资源。总的说来,merge join是一种有较高效率的关联算法,因此teradata优化器一般情况下都采用merge join,只在右表记录数和导出字段字节数乘积较小的情况下采用product join 二)重分布还是全拷贝 由于teradata数据库是一种分布式并行数据库,记录是根据特定字段的值通过哈西计算后分布在多个AMP上,因此要实现关联运算,除了采用何种关联算法(即采用product join还是merge join,还是。。。)的问题,还有左表和右表如何分布到多个AMP上的问题。一般情况下表是根据PI值做分布,但是关联时不是。 1)对于右表记录数较少的情况下,teradata优化器会将右表的记录在每一个AMP上都复制一份,也就是说如果数据库有50AMP,10条记录的表经过拷贝后在数据库中就有500记录,此种做法就是全拷贝。可以想象此种做法同product join一样,在右表记录数较多情况下,比较

文档评论(0)

htfyzc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档