Teradata Explain

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

你可能感兴趣的:(JOIN,sql,database,Access,Teradata,statistics)