数仓性能调优:如何进行函数下推
Posted 华为云开发者联盟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数仓性能调优:如何进行函数下推相关的知识,希望对你有一定的参考价值。
摘要:本文主要描述下函数在满足特征的前提下可以把函数属性定义为下推属性。
本文分享自华为云社区《GaussDB(DWS)性能调优:函数下推》,作者:譡里个檔 。
DWS作为MPP架构的数仓产品,其性能优势主要在分布式计算上。默认情况下,DWS为了保证结果的正确性,自定义函数默认属性是不下推的,这会导致计算不下推,从而导致比较验证的性能问题。本文主要描述下函数在满足特征的前提下可以把函数属性定义为下推属性。
在展开介绍之前,我们先介绍一下DWS里面函数的几个属性
易变属性
下推属性
查询自定义的不下推函数
SELECT
oid::regproc AS proname,
(pg_get_functiondef(oid)).definition
FROM pg_proc
WHERE proshippable = false AND oid > 16384;
总结
函数下推要首先满足以下
- 函数的易变属性为IMMUTABLE和STABLE
- 函数的下推属性设置为SHIPPALE
可以在函数定义的时候指定SHIPPALE属性,可以通过ALTER语句修改函数的下推属性
以上是关于数仓性能调优:如何进行函数下推的主要内容,如果未能解决你的问题,请参考以下文章