pg 事务 存储过程_GreenPlum分区函数/存储过程,必须是一整个事务,全部执行完毕才提交?...

这篇博客讨论了在GreenPlum中如何提高分区函数的执行效率。作者遇到了一个问题,即在一个存储过程中,GreenPlum将所有操作视为一个事务,导致性能下降。为了解决这个问题,作者寻求是否能在每次循环添加分区后立即提交,以改善性能。文章提供了一个详细的PL/pgSQL存储过程示例,展示了如何创建和管理分区。
摘要由CSDN通过智能技术生成

你好,

业务需要,开发了一个分区的函数,实现分区表的自动分区(range分区),

现在问题是数据表有7000张,每到月中执行一次,扩展15天的分区,现在测试的情况是函数效率很低,定位到问题在greenplum中,把函数/存储过程当成了一整个事务,必须全部执行完毕才提交吗?

有没有办法做到没循环执行一个sql(alter table add partition,就提交一次)

附详细函数代码,不胜感激

-- Function: dwdb.proc_add_partition()

-- DROP FUNCTION dwdb.proc_add_partition();

CREATE OR REPLACE FUNCTION dwdb.proc_add_partition()

RETURNS void AS

$BODY$ DECLARE V_SQL1 TEXT;

V_SQL2 TEXT;

V_TABLENAME TEXT;

v_CNT NUMERIC;

V_TABLEDATE NUMERIC;

START_TIME_NUMERIC NUMERIC;

START_END_NUMERIC NUMERIC;

END_TIME_NUMERIC NUMERIC;

START_TIME_DATE TIMESTAMP WITHOUT TIME ZONE;

END_TIME_DATE TIMESTAMP WITHOUT TIME ZONE;

C_CUR1 CURSOR FOR

SELECT SCHEMANAME || '.' || TABLENAME,

MAX

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值