Netezza:使用 SQL / force 生成完整统计信息

Netezza: Generate FULL Statistics using SQL / force

有没有办法强制 netezza 使用 SQL 在 table 上生成完整统计信息。我知道可以通过命令行来完成,但这需要在启动此命令的机器上安装 nzsql 客户端。 根据这里提到的细节 - https://www.ibm.com/support/pages/understanding-generate-statistics-statement 可以强制 NZ 假设目标 table(我们想要 运行 完整统计数据)是小/中(设置 sample_stats_min_Rows = 1000000;) 以便它使用“GENERATE STATISTICS ON”命令生成完整的统​​计信息。 但是,似乎 sample_stats_min_rows 不再是一个有效的选项,因为它给出了一个错误 ERROR [HY000] ERROR: 'SAMPLE_STATS_MIN_ROWS' is not a valid option name。我们已经看到完整统计数据与快速统计数据以及请求的性能存在巨大差异。 我们的版本是 Release 7.2.1.10-P1

nz_genstats 可以选择生成完整的统​​计信息。如果您深入研究脚本,这就是完成此操作的设置

完整统计数据

SET ENABLE_JIT_DISPERSION=FALSE;
SET ENABLE_JIT_STATS=ON;
GENERATE STATISTICS ON $TABLENAME;

用于快速统计

SET ENABLE_JIT_DISPERSION=TRUE;
SET ENABLE_JIT_STATS=ON;
SET JIT_DISP_MIN_ROWS=999999999999999;
GENERATE EXPRESS STATISTICS ON $TABLENAME;

基本统计数据

SET ENABLE_JIT_DISPERSION=TRUE;
SET ENABLE_JIT_STATS=ON;
SET JIT_DISP_MIN_ROWS=1;
SET ENABLE_GENSTATS_DISPERSION=FALSE;
GENERATE STATISTICS ON $SQL_TABLENAME;