【问题标题】:Organization of correlated columns in NetezzaNetezza 中相关列的组织
【发布时间】:2018-05-11 06:05:06
【问题描述】:

假设 Netezza 中有一个包含 COUNTRY 和 REGION 列的大表,其中每个国家/地区汇总到一个地区。如果表仅在 COUNTRY 上显式组织,则它也在 REGION 上隐式组织,因为数据是相关的。

对于在 WHERE 子句中使用 REGION 的查询,Netezza 是否知道这一点,或者 Netezza 是否仍会扫描整个表而不管区域映射如何?

换句话说:要获得 REGION 的性能优势,是否必须在区域图中明确组织 REGION?

【问题讨论】:

    标签: netezza


    【解决方案1】:

    运动回答是“是”,稍长一点的回答是“视情况而定”

    一般来说,netezza zonemaps 适用于除字符串列之外的所有列,如果它们包含在“组织上”中,则它们只有一个区域图,所以让我们假设两列都是整数“代码”并且你有一个小表 (维度表),通过连接将两个代码中的每一个转换为字符串,那么它将很好地工作。

    当然,如果不同值的数量与整个表相比较小和/或区域代码大部分在相应的国家代码升序时升序,则此优化效果最佳。

    【讨论】:

    • 我们的表格使用字符串,而不是整数。在我的一个真实示例中,有 3 个地区代码和 25 个国家/地区。
    • 在这种情况下,您可能需要将两者都包含在“组织”中(记住要整理,记录所有)。真正的问题是您的特定工作负载是否有显着优势。通常,要“组织”的每个添加列的值会迅速下降。不过,我会敦促您更改数据模型,尤其是当字符串超过几个字节时
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    相关资源
    最近更新 更多