【问题标题】:Azure synapse Dedicated SQL Pools - Getting table "index hints" workingAzure 突触专用 SQL 池 - 使表“索引提示”工作
【发布时间】:2021-11-09 10:34:17
【问题描述】:

问:如何将表查询提示放入 sql 池中?他们似乎没有被认出来?

我们有一个带有多个表的突触专用 sql 池,我们将这些表加入到我们的查询和函数中。

架构已经过优化,大多数表的连接与哈希分布一致。由于这个原因,简单的查询确实非常快,因为大多数连接都是在单个节点上完成的。

不幸的是,一些sql查询导致查询优化器出现故障,以不正确的方式连接,导致速度下降近10倍。

我们尝试了多种方法来使用各种“提示”来指定要使用的连接索引 例如with (index = XXXX) and with (index(XXXXX)) and option(...),但是专用的 sql 池似乎无法识别任何表查询提示并返回错误。

如果我们不解决这个问题,那么专用的 sql 池将非常不适合我们的业务领域。
(这也很奇怪,在这方面没有实际的最新文档 - sql 池甚至几乎没有实现它看起来的 t-sql 规范,所以奇怪的是实际实现似乎不存在文档? )

非常感谢您对索引提示的任何帮助!

编辑 - 一些背景信息 - 但请记住 - 我们正在了解如何让 HINTS 工作的信息:

简而言之 - 我们有 2 个主表 - 一个包含每日来源信息,另一个是多天属性查找。

基本查询是这样的:

select d.*, mp.* from Daily d
inner join MultiDayProperties mp on (mp.id = d.propertyid)
where d.reportDate = '20210914' and....

两个表都散列在 mp.id 和 d.propertyid 上,并在 d.reportDate 和 mp.id 上附加了一个表索引。

通常情况是查询 Daily 表以获取 reportDate,并且 Daily 条目与它们的 MultiDayProperties 表查找相连接 - 结果非常快,因为两个条目都在同一个节点中。

但是,当进一步限制 MultiDayProperties 上的查询时, 例如“和 mp.param1='abc' 和 mp.param2='cde'”, 然后我们实际上是在(巨大的)MultiDayProperties 表上进行表扫描,然后将生成的超集 ID 广播加入 Daily 表。 (慢 10 倍)

这种情况我已经使用正常的 SQL Server 使用适当的查询提示解决了,但是我无法使用 Synapse SQL 池做到这一点。

简而言之 - 我只是在获得 SQL POOLS 表查询提示的帮助后:
SqlServer 允许表查询提示 - 如何将此类表查询提示与 SQL POOLS 一起使用?

【问题讨论】:

  • 您是否有未按预期执行的示例查询?所涉及的所有表的分布是什么?能否将 EXPLAIN 放在查询前面并包含查询的解释计划?
  • 嗨 - 用更多信息更新了这个问题,谢谢
  • 表是列存储还是聚集索引还是堆?自动创建统计是否开启? docs.microsoft.com/en-us/azure/synapse-analytics/sql/…
  • 统计信息已开启,我们每天早上都会自动更新。我在这里寻求帮助的问题是如何在 SQL POOLS 上使用表查询提示(如在普通 sql server 中) - 因为它们似乎不受支持?

标签: azure-sql-database query-optimization azure-synapse


【解决方案1】:

好的 - 在尝试了很多事情之后,发现在出现问题的情况下,在查询末尾添加以下内容可以解决问题:

选项(使用提示('ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES'));

这在出现问题的情况下阻止了 ShuffleMoveOperation 风暴。

提示: ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS 和 ASSUME_FULL_INDEPENDENCE_FOR_FILTER_ESTIMATES 似乎也有帮助(尽管小于 MIN_SELECTIVITY)

【讨论】:

    猜你喜欢
    • 2022-10-04
    • 2022-09-23
    • 2021-10-19
    • 2021-07-21
    • 2022-01-27
    • 2021-05-28
    • 1970-01-01
    • 2021-12-25
    • 2021-09-19
    相关资源
    最近更新 更多