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 设置为空字符串,因此脚本被发送到标准输出(如下截断所示)。
-
最后两个参数 deploy 和 reanalyze-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)