Teradata Explain

本文介绍了如何在Teradata中查看执行计划,并详细解析了执行计划的各个步骤,包括锁表机制和数据获取策略。重点讨论了无连接查询与连接查询的执行方式,强调了unique primary index和统计数据在优化执行计划中的作用。建议用户通过调整SQL和更新统计数据来提升查询性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Teradata 执行计划

 

查看Teradata执行计划使用如下语句:

Explain SQL Statement

 

一般来说,执行计划分为以下几个过程:

1. 锁表

2. 获取数据

3. 完成Transaction

4. 返回数据

 

锁表:

Teradata有如下几种锁:ACCESS, READ, WRITE, EXCLUSIVE

 

ACESS 允许读脏数据,允许insert/update/delete

READ   允许读,不能insert/update/delete

WRITE 不允许读,只能insert/update/delete

EXCLUSIVE 最严格,用于改变表或者数据库结构时用 alter table/alter database

 

获取数据:

根据条件不同获取数据的方法也不同

1. without join

all-AMP RETRIEVE 直接从AMP中提取数据并返回

如果where 条件使用了unique primary index,则更加简单高效,使用 single-AMP RETRIEVE

 

2. with join

首先将一个表中数据用all-AMP RETRIEVE 取出,然后再重新分布到所有AMP中,然后进行all-AMPs JOIN。

如果连接条件使用了unique primary index,则会省略all-AMP RETRIEVE,因为所有数据已经根据join条件分布到AMP中。

 

3. others

当然还会有其它很多条件来获取数据,不同方法都会有不同的plan,具体可以自己去尝试一下。

 

说明:

Teradata 生成execution plan的时候会根据index/statistics来进行优化,所以一定要合理的设置unique primary index并及时更新statistics让引擎可以更好的工作。

 

当然,Teradata只会根据你写的SQL来生成合适的plan,SQL不同则plan也会有差别,所以写SQL的时候要注意,尝试不同的SQL并观察生成的plan的不同,加以体会。

 

 

参考:

http://teradata.uark.edu/research/lee/performance_check.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值