数据仓库服务 GAUSSDB(DWS)-CREATE TRIGGER:注意事项

时间:2024-12-06 15:12:42

注意事项

  • 当前仅支持在普通行存表上创建触发器,不支持在列存表、临时表、unlogged表等类型表上创建触发器。
  • 如果为同一事件定义了多个相同类型的触发器,则按触发器的名称字母顺序触发它们。
  • 一个触发器只能作用在一张表上,对创建的触发器数量无限制但一个表上的触发器越多,性能消耗越大。
  • 触发器常用于多表间数据关联同步场景,对SQL执行性能影响较大,不建议在大数据量同步及对性能要求高的场景中使用。
  • 当触发器满足如下条件时,触发语句能和触发器一起下推到DN执行并提升触发器执行性能:
    • 开关enable_trigger_shipping和enable_fast_query_shipping开启(默认均开启)。
    • 源表触发器使用的触发器函数为plpgsql类型(推荐类型)。
    • 源表与触发表分布键的类型、数量完全相同,均为行存表,且所属的nodegroup相同。
    • 原INSERT/UPDATE/DELETE语句条件中包含所有分布键与NEW/OLD等值比较表达式。
    • 原INSERT/UPDATE/DELETE语句在没有触发器的情况下原本就能query shipping。
    • 源表上只有INSERT/UPDATE/DELETE AFTER/BEFORE FOR EACH ROW六类触发器,且所有触发器都可下推。
support.huaweicloud.com/sqlreference-910-dws/dws_06_0184.html