华为云云数据库GaussDB函数/存储过程设计规范_云淘科技

避免使用存储过程、触发器等实现业务逻辑,应该将这些逻辑都放到业务服务器上处理,避免对数据库产生逻辑依赖。
业务的数据库升级脚本中,禁止使用存储过程实现升级逻辑。
仅创建对固定入参有固定返回值的函数,函数必须设为IMMUTABLE和SHIPPABLE类型。

目前数据库支持三种类型的函数,分别是IMMUTABLE, STABLE, VOLATILE。

对于IMMUTABLE函数且设置为SHIPPABLE的函数,会允许函数在DN上执行。在大部分场景下,该函数的执行效率较高。

但是此类函数要求对于固定的入参得到固定的返回值,来保证函数在DN上执行的正确性。如果函数的结果依赖对数据表的扫描结果(例如获取某个表中列的max值)或依赖时间(如获取当前时间),那么函数应设置为STABLE或者VOLATILE,且NOT SHIPPABLE,以保证函数执行的正确性。在此种场景下,所有DN上的数据将发送至某一个CN上进行计算,导致查询执行效率低下。

父主题: 数据库设计规范

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家