基于Teradata的SQL性能调优.doc

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

基于 的 性能调优 Teradata SQL 宋 轶 (上海交通大学信息安全学院,上海 200030) 摘 要: 对 Teradata 数据仓库的系统架构做简单介绍,尤其是针对影响 Teradata 性能的底层因素 进行必要的分析,并对实践过程中的遇到的常见问题进行总结和归纳,希望能给读者一 些启发和帮助。 关键词: Teradata; 数据仓库; 性能调节; 数据倾斜 引 言 Teradata 作为数据仓库解决方案的领导者,给我 们提供一个处理海量数据的平台。 在拥有选择好一个 良好的数据仓库平台后,从前期的咨询、实施,到后期 的升级维护,都是极其重要的。 需要强调的是,数据仓 Teradata 的数据存储及分布 Teradata 的数据分布是整个系统范围内的数 据 分布,是跨 AMP 的数据分布,是针对每一个实体表的 数据分布。 AMP 是 Teradata 数据库系统中具体数据 的持有者和直接操作者,整个 Teradata 数据库系统中 的每一条数据都唯一关联到某一个 AMP 上。 同时,对 于系统中的每个表,其数据都会依照哈希算法分布在 系统中的全部 AMP 上,也就是说,在整个系统范围内 容的所有 AMP 上,都有系统中的所有的实体表,只是 同一个表在不同的 AMP 上实际存储 的数据 并 不 相 同。 在进行 Teradata 数据库的逻辑设计时,对于每一 0 2 库的维护,并不是单一靠硬件的升级来实现。 容易忽 略的是,随着数据的不断积累,日常的 ETL 过程和数 据查询都对数据仓库的性能产生很大的影响,因此也 存在很大的优化空间。 Teradata 系统构架简介 Teradata Teradata 在 整 体 上 是 按 Shared Nothing 1 架构体系进行组织的,能够高效并发操作。 主要组件如图 1 所示。 其系统的 个表, 都要指定一个 “主索引”(Primary Index, 简称 PI),Teradata 数据库引擎会根 据 这个主索引的实际 值,同时根据系统的配置情况(主要是 AMP 的个数), 通过一种哈希算法,为每个表的每一条数据都生成一 个 “行哈希值”(Row Hash Value),Teradata 会根据这 个行哈希值把数据分布到某一个确定的 AMP 上。 根据哈希算法, 对于不同的 Primary Index 值,可 能会计算出相同的行哈希值,这些具有相同的行哈希 值的数据行就会被分布在同一个 AMP 上。 这样,如果 哈希算法选择得当,则可以基本保证,同一个表中的 数据在整个 Teradata 并行系统的多个 AMP 上的分布 是趋于均匀的(参见图 2)。 Teradata }fi ! #$fi% -. 图 1 Teradata 系统功能组件 收稿日期:2009-05-25 修稿日期:2009-07-26 作者简介:宋轶(1982-),男,湖南人,工程硕士,研究方向为数据仓库 1 + + 234 567 , ! /0 fi% ’()* Teradata} AMP AMP AMP AMP BTNET MTDP MO‘I ?fl ?fi 3LI 3LI TDP ?fl ?fi 计 算 方 法 :Eff = Sum (CPU)/(Sum (IO) / 1000) 该 等 式 给 出 了 每 1000 单 位 IO 时 CPU 的 消 耗 比,数值越小,表示性能越好。 例如: 查 询 一: 1283 CPU seconds, 1.09m IOs – ration of 6 查 询 二: 2568 CPU seconds, 2.09m IOs – ration of 12 3.3 并发度(Parallel Efficiency):是指某查询对整 个系统的影响 计算方法:PE = (Total CPU Time / Effective CPU Time) * 100% 系统花在执行该查询语句上的 Total CPU Time: CPU 时间总和。 Effective CPU Time: 系统中最忙的一个 AMP 执 行该语句所花的时间乘以系统 AMP 总数。 实际上,并发度和倾斜度密切相关。一般来说,倾 斜度越高,并发度就越低。 反之亦然。 图 2 Teradata 的数据分布机制 对于一个 Teradata 系统, 其哈希算法是确定的, 而且是运行时不可变的,在系统的硬件不变的前提下 (AMP 数不变),这就保证了对于同一个 Primary Index 值,所生成的行哈希值也是相同的。 因此,对于不同的 表,尤其是有主-外键关联关系的表,通过慎重地定义 Primary Index, 可以做到那些经常要进行关联 ( 往往

文档评论(0)

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

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

1亿VIP精品文档

相关文档