3706 teradata 语句报错_Teradata高级文档.doc

Teradata高级文档

Tera Blog 收藏

Teradata SQL调优

1.优化过程:依照运行时间,数据量和复杂度来定位瓶颈。

查看sql执行计划,判断其合理性。 性能监控 ==》目标选取 ==》性能分析 ==》过程优化 ==》运行跟踪(性能监控)

注意:每个过程中都会产生必须的文档

2.性能分析: ? Review PDM --表定义 --PI的选择 --表的记录数与空间占用 ? Review SQL --关联的表 --逻辑处理复杂度 --整体逻辑 --多余的处理 ? 测试运行 --响应时间 ? 查看EXPLAIN --瓶颈定位

3.过程优化: ? 业务规则理解 --合理选取数据访问路径 ? PDM设计 --调整PDM ? SQL写法不优化,忽略了Teradata的机理与特性 --调整SQL ? Teradata优化器未得到足够的统计信息 --Collect Statistics

4.Multiple Insert/select --> Multi-Statement Insert/Select * 并行插入空表不记录Transient Journal * 充分利用Teradata向空表Insert较快以及并行操作的特性如: ? 现状 INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC1 ; INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC2 ; INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC3 ; 说明:串行执行,多个Transaction ? 优化后: INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC1 ;INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC2 ;INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC3 ; 说明:并行执行,单个Transaction

5.Insert/Select with Union/Union all --> Multi-Statement Insert/Select * Union 需要排除重复记录,Union all虽不需要排重,但都需要占用大量的Spool空间,都需要进行重新组织数据 如:现状: INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC1 ; UNION ALL SELECT … FROM SRC2 ; UNION ALL SELECT … FROM SRC3 ; … 调整后: INSERT INTO ${TARGETDB}.DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC1 ;INSERT INTO ${TARGETDB}.T01_DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC2 ;INSERT INTO ${TARGETDB}.T01_DES (Party_Id ,Party_Name ... ) SELECT … FROM SRC3 ;

6.排除重复记录 * 针对单表内的重复记录使用ROW_ NUMBER函数排重 * 排重方式多了一层子查询 * 增加了大量的数据重新分布的时间 现状: …… INSERT INTO ${TARGETDB}.T01_INDIV (Party_Id ,Party_Name ... ) SELECT COALESCE(b1.Party_Id,'-1') , COALESCE(TRIM(b1.Party_name),'') ... FROM ( select party_id party_name, … , ROW_NUMBER() OVER (PARTITION BY Party_Id ORDER BY Party_Name ) as rownum from ${TEMPDB}.T01_INDIV b1 … ) AA where AA.rownum = 1 …… 建议做法: INSERT INTO ${TEMPDB}.T01_INDIV … INSERT INTO ${TE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值