TeraData 培训.ppt

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

避免对大表的UPDATE操作 例如: UPDATE T1 FROM VT_COLOR_SUBS_tmp AS T1,(SEL SUBS_ID,MMS_SVC_Type_Cod,SUM(Comm_NUM) AS Comm_NUM FROM VT_MS_INFO GROUP BY 1,2) AS T2 SET Total_QUAN= T2.Comm_NUM WHERE T1.SUBS_ID=T2.SUBS_ID AND T1.MMS_SVC_Type_Cod=T2.MMS_SVC_Type_Cod Update TB set col1 = ‘A’ where col2 = ‘B’ create multiset table TB1 as TB Insert into TB1 sel … case when col2 = ‘B’ then ‘A’ else col1 end Delete from TB where col1 = ‘A’ Insert into TB sel * from TB1 目标表数据量大,应尽量避免UPDATE操作 UPDATE操作对性能影响较大,而且效率低 如需对大表UPDATE,可考虑用INSERT+DELETE操作替代 书写习惯 例如: cal_month = 200701 cal_month = 200701 (Integer) 限制条件中未考虑字段类型 考虑字段类型 历史数据提取方法 例如: Where Efct_Date = and End_Date 历史数据提取方法必须是半闭半开区间,否则历史数据将会有问题 书写仔细 设计优化 例如: select home_area ,subs_id from PVIEW.vw_XX_DET where proc_date between 2007||0101 and and opper_num like 12593% and roam_type_code not in (2,3,7) 设计时应该充分考虑系统性能 合理设计 利用现有中间表 月任务加载时间过长,可考虑拆分成日作业执行 优化前提 保证数据正确性与一致性 对于后台脚本,优化时还要考虑作业间关系,不能为了优化破坏脚本的逻辑及依赖关系 所有的优化不能脱离DDL及数据库本身的机制 数据分布设计策略 PI PPI(数据分布不均匀是大忌) 在Teradata中,PI的选择十分重要,选取不正确,则有如下的影响: 占用更大数据空间; 极大影响性能。 选择PI的大致原则: ACCESS(访问) DISTRIBUTION(分布) VOLATILITY(可变性) 即选择那些经常需要引用或用作关联的、能让表数据均匀分布、相对比较稳定(经常变化必然导致数据在AMP间的迁移)的字段做PI. 表一定要有PI,如果你没有指定,Teradata会按如下原则指定PI: 1)有PK的话,用PK字段作为UPI. 2)没有PK的话,有USI的话,将USI的字段做UPI. 3)没有PK,没有USI的话,将第一个字段作为NUPI. 所以,尽量自己去指定PI! 一般优化策略 尽量利用分区 尽量创造条件使用分区,例如明细数据中的处理日期和统计月份 表与表的关联,尽量通过两个表的PI字段进行关联,避免数据的重分布 若PI由多个字段组成,则要将多个字段列全,否则PI会不使用 关联条件不可忽略,避免迪卡尔乘积 在SQL中列全所需要的所有字段,避免select * from TableName,减少SPOOL空间开销; DDL上的优化 DDL中用MULTISET,避免使用SET(SET可用指定UPI来实现); 日期格式均指定为’YYYYMMDD’; 考虑使用NO FALLBACK 与 FALLBACK以及NO JOURNAL 与 JOURNAL; 尽量少用SI,只是有时在追求性能的情况下可以使用; 索引尽量选择后续SQL可以用到的,并尽可能考虑唯一性; 字符字段评估是否该使用CHAR类型,而不是VARCHAR类型,使用CASESPECIFIC(大小写敏感); 使用的字段尽可能设置Not Null; 代码表中应将代码设置成UPI; Partition字段一般为日期(YYYYMMDD)或年月(YYYYMM); 字段压缩:节省空间和提高速度; 只读视图在创建时增加Locking Row for ACCESS选项 其他优化方法 定期用COLLECT STATISTICS对表进行统计信息收集; 必要时使用临时表,简化JOIN语句的复杂度,便于人为控制; INSERT INTO A SELECT * FR

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档