摘要:本文主要描述下函數在滿足特征的前提下可以把函數屬性定義為下推屬性。 本文分享自華為雲社區《GaussDB(DWS)性能調優:函數下推》,作者:譡里個檔 。 DWS作為MPP架構的數倉產品,其性能優勢主要在分散式計算上。預設情況下,DWS為了保證結果的正確性,自定義函數預設屬性是不下推的,這會導 ...
摘要:本文主要描述下函數在滿足特征的前提下可以把函數屬性定義為下推屬性。
本文分享自華為雲社區《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語句修改函數的下推屬性