摘要:本文主要描述下函数在满足特征的前提下可以把函数属性定义为下推属性。
本文分享自华为云社区《GaussDB(DWS)性能调优:函数下推》,作者:譡里个檔 。
DWS作为MPP架构的数仓产品,其性能优势主要在分布式计算上。默认情况下,DWS为了保证结果的正确性,自定义函数默认属性是不下推的,这会导致计算不下推,从而导致比较验证的性能问题。本文主要描述下函数在满足特征的前提下可以把函数属性定义为下推属性。
在展开介绍之前,我们先介绍一下DWS里面函数的几个属性
易变属性
![](https://pic2.zhimg.com/80/v2-258a8aa5b90ce8c4596816cf6d0a4a7d_720w.webp)
![](https://pic2.zhimg.com/80/v2-accfcf5890b52929d446c258a238c561_720w.webp)
下推属性
![](https://pic1.zhimg.com/80/v2-889114154986510004dd83eec0e07c94_720w.webp)
查询自定义的不下推函数
SELECT oid::regproc AS proname, (pg_get_functiondef(oid)).definition FROM pg_proc WHERE proshippable = false AND oid > 16384;
总结
函数下推要首先满足以下
- 函数的易变属性为IMMUTABLE和STABLE
- 函数的下推属性设置为SHIPPALE
可以在函数定义的时候指定SHIPPALE属性,可以通过ALTER语句修改函数的下推属性
![](https://pic4.zhimg.com/80/v2-d3e0e7c1719d1332162764f35a2e352b_720w.webp)
标签:数仓,函数,DWS,下推,调优,属性 From: https://www.cnblogs.com/huaweiyun/p/16799307.html