【问题标题】:Netezza: Generate FULL Statistics using SQL / forceNetezza:使用 SQL / force 生成完整的统​​计信息
【发布时间】:2021-04-28 19:03:53
【问题描述】:

有没有办法强制 netezza 使用 SQL 对表生成完整的统​​计信息。我知道可以通过命令行来完成,但这需要在启动此命令的机器上安装 nzsql 客户端。 根据此处提到的详细信息 - https://www.ibm.com/support/pages/understanding-generate-statistics-statement 可能会强制 NZ 假设目标表(我们要在其上运行完整统计信息)是小型/中型(设置 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

【问题讨论】:

    标签: sql command-line netezza table-statistics


    【解决方案1】:

    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;
    

    【讨论】:

    • 非常感谢迈克!这有帮助。不幸的是,我们没有选择探索脚本本身,但是当您为其设置命令时,它似乎可以让我们获得完整的统计数据。
    • 给您友好的本地 DBA 打电话,请他在不同的服务器上创建所有 nz_* 脚本的“备份”(副本)。它们包含大量知识:) #MarkFraaseForPresident
    • 同意#MarkFraaseForPresident :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多