约束强制执行
您可以强制执行以下约束:
-
PRIMARY KEY
-
UNIQUE
-
CHECK
对表启用约束强制执行之后,Vertica 会立即将该约束应用到表的当前内容,以及稍后添加或更新的所有内容。
用于调用约束强制执行的操作
以下 DDL 和 DML 操作可调用约束强制执行:
-
ALTER TABLE...ADD CONSTRAINT
和ALTER TABLE...ALTER CONSTRAINT
-
COPY
-
UPDATE
-
MERGE
-
分区函数:
-COPY_PARTITIONS_TO_TABLE
-MOVE_PARTITIONS_TO_TABLE
-SWAP_PARTITIONS_BETWEEN_TABLES
益处和代价
启用约束强制执行有助于最大程度地减少加载后的维护任务,例如:使用
ANALYZE_CONSTRAINTS
单独验证数据,然后处理其返回的约束违规问题。
强制执行键约束,尤其是启用主键约束,可以帮助优化器更快地生成查询计划,特别是联接的查询计划。当对表实施主键约束时,优化器假定该表中的所有行均未包含重复的键值。
在某些情况下,大量的约束强制执行(尤其是在大型数据表中)可能会导致系统开销显著增加。有关详细信息,请参阅约束强制执行和性能。