DESIGNER_DESIGN_PROJECTION_ENCODINGS

在指定投影中分析编码,创建脚本以实施编码建议并选择性地部署建议。

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

行为类型

易变

语法

DESIGNER_DESIGN_PROJECTION_ENCODINGS ( '[ proj‑spec[,... ] ]', '[destination]' [, 'deploy'] [, 'reanalyze-encodings'] )

参数

proj‑spec[,...]
要添加到设计中的一个或多个逗号分隔投影。可以通过以下方式之一指定每个投影:
  • [[schema.]table.]projection
    指定分析 projection

  • schema.*
    指定分析命名架构中的所有投影。

  • [schema.]table
    指定分析命名表的所有投影。

如果设置为空字符串,Vertica 会分析数据库中用户有权访问的所有投影。

例如,以下语句指定分析架构 private 中的所有投影,并将结果发送到文件 encodings.sql

=> SELECT DESIGNER_DESIGN_PROJECTION_ENCODINGS ('mydb.private.*','encodings.sql');
destination
指定发送输出的位置,为以下之一:
  • 空字符串 ('') 将脚本写入标准输出。

  • SQL 输出文件的路径名。如果指定一个不存在的文件,函数会创建一个相应的文件。如果您仅指定一个文件名,Vertica 会在编录目录中创建它。如果文件已经存在,函数将静默覆盖其内容。

deploy
BOOLEAN 值,指定是否部署编码更改。

默认值:false

reanalyze‑encodings
BOOLEAN 值,指定 DESIGNER_DESIGN_PROJECTION_ENCODINGS 是否分析所有列都已编码的投影中的编码:
  • false:如果所有列都已编码,则不分析任何列并且不生成任何建议。

  • true:忽略现有编码并生成建议。

默认值:false

特权

具有以下权限的超级用户或 DBDUSER:

  • 要分析的所有投影的 OWNER

  • 指定投影架构上的 USAGE 权限

示例

以下示例要求 Database Designer 分析表 online_sales.call_center_dimension 的编码:

  • 第二个参数 destination 设置为空字符串,因此脚本被发送到标准输出(如下截断所示)。

  • 最后两个参数 deployreanalyze-encodings 被忽略,因此 Database Designer 不会执行脚本或重新分析现有编码:

=> SELECT DESIGNER_DESIGN_PROJECTION_ENCODINGS ('online_sales.call_center_dimension','');

              DESIGNER_DESIGN_PROJECTION_ENCODINGS
----------------------------------------------------------------

CREATE PROJECTION call_center_dimension_DBD_1_seg_EncodingDesign /*+createtype(D)*/
(
 call_center_key ENCODING COMMONDELTA_COMP,
 cc_closed_date,
 cc_open_date,
 cc_name ENCODING ZSTD_HIGH_COMP,
 cc_class ENCODING ZSTD_HIGH_COMP,
 cc_employees,
 cc_hours ENCODING ZSTD_HIGH_COMP,
 cc_manager ENCODING ZSTD_HIGH_COMP,
 cc_address ENCODING ZSTD_HIGH_COMP,
 cc_city ENCODING ZSTD_COMP,
 cc_state ENCODING ZSTD_FAST_COMP,
 cc_region ENCODING ZSTD_HIGH_COMP
)
AS
 SELECT call_center_dimension.call_center_key,
        call_center_dimension.cc_closed_date,
        call_center_dimension.cc_open_date,
        call_center_dimension.cc_name,
        call_center_dimension.cc_class,
        call_center_dimension.cc_employees,
        call_center_dimension.cc_hours,
        call_center_dimension.cc_manager,
        call_center_dimension.cc_address,
        call_center_dimension.cc_city,
        call_center_dimension.cc_state,
        call_center_dimension.cc_region
 FROM online_sales.call_center_dimension
 ORDER BY call_center_dimension.call_center_key
SEGMENTED BY hash(call_center_dimension.call_center_key) ALL NODES KSAFE 1;

select refresh('online_sales.call_center_dimension');

select make_ahm_now();

DROP PROJECTION online_sales.call_center_dimension CASCADE;

ALTER PROJECTION online_sales.call_center_dimension_DBD_1_seg_EncodingDesign RENAME TO call_center_dimension;
(1 row)

另请参阅

通过编程方式运行 Database Designer