识别所需的统计信息 - Azure SQL数据仓库

时间:2016-12-22 22:40:03

标签: azure-sqldw

是否有任何提示或指令可用于Azure SQL数据仓库上的查询的EXPLAIN,它将返回优化程序无法使用的推荐统计信息?或者,有一种工具可以分析工作量并提出任何建议。

2 个答案:

答案 0 :(得分:3)

今天没有。现在,建议在每个列上创建统计信息,因为这些是创建最佳并行查询计划所需的(即,如何在节点之间移动数据以返回结果,因为它是MPP架构)。

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-best-practices#maintain-statistics

此处也可以找到如何编写此脚本的示例(示例H)。

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-statistics#examples-create-statistics

答案 1 :(得分:1)

如您所知,应创建统计数据(根据this article):

  

涉及JOIN,GROUP BY,HAVING和WHERE子句的列。

没有工具可以执行此操作(但),但如果您有权访问EXPLAIN计划,他们会为您提供某些信息。例如,shuffle_columns元素列出了SHUFFLE_MOVE

中涉及的所有列
<shuffle_columns>col;</shuffle_columns>

以及无数其他信息。查看我对Azure SQL数据仓库计划here所做的注释。

最后,(我实际上并没有这样做,我只考虑过这样做),您可以在SQL Server 2016上设置数据库副本,同时考虑到语法差异(例如分发,缺乏独特的索引等)。这将使您可以访问某些有用的资源,如执行计划,包括索引建议,以及某些跟踪标志,告诉您使用了哪些统计信息。我的意思是数据库引擎和索引真的不同,所以我不知道这可能是多么值得。如果我继续思考这个问题,我会回复一下。我确实找到了问题&#34;为什么这个查询变得缓慢?&#34;在这个普通的盒子产品&#34;平台上更难回答SQL Server,因为这些工具尚未成熟。

相关问题