Teradata Explain
2015-10-26 13:09
465 查看
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
查看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
相关文章推荐
- Timus Online Judge 1017 Staircases(记忆化搜索)
- ERROR ITMS-90049:"This bundle is invalid.The bundle identifier contains disallowed characters."
- 全局光照技术解析Global Illumination Explained
- TEMP_FAILURE_RETRY,__extension,MSG_NOSIGNAL
- Intellij IDEA无法启动:Failed to create JVM:error code -4
- Onpaint和OnDraw的区别
- aidl远程调用其他应用服务
- LPC43XX JTAG Scan Chain
- pthread_cond_timedwait 实例
- FairScheduler源码队列饥饿
- 【PAT】1086. Tree Traversals Again (25)
- FairScheduler源码计算fair share
- FairScheduler源码资源抢占
- FairScheduler源码任务分配
- Intel 82599 ixgbe & ixgbevf CNA 卡驱动分析02——VF/PF/MailBox
- CvSVM::EPS_SVR train_auto assertion sv_count != 0 failed原因
- Daily Scrum (2015/10/25)
- mybaitis学习第二天 mybatis框架原理
- ScalaInAction测试——静态测试
- 第二十五篇:traincascade训练报错:Train dataset for temp stage can not be filled.