DESIGNER_SET_DESIGN_KSAFETY

为全面设计设置 K-safety 并将 K-safety 值存储在 DESIGNS 表中。对于增量设计,Database Designer 会忽略此函数。

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

DESIGNER_SET_DESIGN_KSAFETY ( 'design‑name' [, k‑level ] )

参数

design‑name
要为其设置 K-safety 值的设计名称,VARCHAR 类型。
k‑level
介于 0 和 2 之间的整数,用于指定目标设计的 K-safety 级别。此值必须与数据库群集中的节点数兼容:
  • k‑level = 0:≥ 1 个节点

  • k‑level = 1:≥ 3 个节点

  • k‑level = 2:≥ 5 个节点

如果忽略此参数,Vertica 会根据节点数将此设计的 K-safety 设置为 0 或 1:如果群集包含 ≥ 3 个节点,则为 1,否则为 0。

如果您是 DBADMIN 用户并且 k-level 与系统 K-safety 不同,Vertica 会按如下方式更改系统 K-safety:

  • 如果 k-level 小于系统 K-safety,Vertica 会在部署设计后将系统 K-safety 更改为较低级别。

  • 如果 k-level 大于系统 K-safety 并且对数据库群集有效,Vertica 会为此设计中的表创建所需数量的伙伴实例投影。如果设计适用于所有数据库表,或者数据库中的所有表都具有所需数量的伙伴实例投影,则 Database Designer 将系统 K-safety 更改为 k-level

    如果设计排除了一些数据库表并且它们的伙伴实例投影数量小于 k-level,Database Designer 将系统 K-safety 保持不变。它会返回警告并指出哪些表需要新的伙伴实例投影以调整系统 K-safety。

如果您是 DBDUSER,Vertica 会忽略此参数。

特权

非超级用户:设计创作者

示例

以下示例将 VMART_DESIGN 设计的 K-safety 设置为 1:

=> SELECT DESIGNER_SET_DESIGN_KSAFETY('VMART_DESIGN', 1);

另请参阅

通过编程方式运行 Database Designer