【问题标题】:Azure Synapse Analytics monitor rowgroup skippingAzure Synapse Analytics 监视器行组跳过
【发布时间】:2020-09-16 03:35:03
【问题描述】:

作为参考,我使用的是 CCI 表(哈希) 我正在寻找一种解决方案来监控,对于在我的哈希上使用 WHERE 谓词的查询,Synapse 是否很好地跳过了无效的行组。

【问题讨论】:

    标签: sql-server azure-sqldw azure-synapse


    【解决方案1】:

    对于散列分布表,Synapse 将消除分布,而不是行组。控制行组跳过的是分区方案和 CCI 顺序。这在execution plan 中应该很明显。

    对于 CCI,每个表都有多个 (60) 分布。每个分布都有一个或多个分区。每个分区都有一个或多个行组。每个行组最多有 100 万行。

    对于堆和聚集索引表,它是相同的,除了每个分区都有一个堆或聚集索引。

    【讨论】:

    • 好的。因此,如果除了跳过分布之外我适合 CCI 非排序者,那么我在示例中的查询没有跳过分布内的分区?
    • 我不明白这个问题。也许如果您在您的问题中添加一些有关您的表格和查询的详细信息会有所帮助。
    • 当然。我有一个大的(大约 3210 亿行)无序 CCI 表,分布 = hash[some_id]。我对这个只有一个表有一个查询,但有多个 WHERE 条件,包括“some_id”上的一个。性能很差,所以我试图找到一个解决方案,让我避免我的查询对所有行组进行全面扫描。首先,我试图找到最好的方法来监控我的查询对表定义的影响(例如行组跳过)
    • 单一分布查询是一个挑战。如果这是一种常见情况,您的分配选择可能不是最佳的。或者您可能需要实现分区(您的表足够大)和/或 CCI 排序和/或二级索引。或者可能是物化视图。
    • 即使是数据加载也是这种容量的挑战。但是是的,我正在考虑分区/索引/ ...但首先我想清楚地了解每个解决方案在内部是如何工作的(这就是为什么我正在寻找一个解决方案来监控它......执行计划还可以,但是它不是 DBCC TRACEON)。
    猜你喜欢
    • 2021-02-17
    • 2020-09-05
    • 2021-01-14
    • 2022-06-23
    • 2020-08-16
    • 2022-07-07
    • 2021-06-28
    • 2021-08-25
    • 2021-05-05
    相关资源
    最近更新 更多