2016-12-22 16 views
1

Azure SQLデータウェアハウスのクエリのEXPLAINで、オプティマイザで使用できなかった推奨統計情報を返すヒントまたはディレクティブがありますか?あるいは、ワークロードを分析して推奨を行うツールがあります。必要な統計情報の特定 - Azure SQLデータウェアハウス

+1

私はこれを強化要求として提出しました。https://feedback.azure.com/forums/307516-sql-data-warehouse/suggestions/17597272-add-recommended-statistics-to-explain-output。 – Steve

答えて

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

+0

本当に役立つ答え - テーブルがデフォルトで列ストアである場合の統計の必要性を理解しようとしていました。私が分散した考え方に入ることが重要です。 –

+0

@Anthony、すべての列に統計情報を作成することが推奨される場合、なぜAzure SQL DWはそれ自体を作成しないのですか?自然ではない理由は何ですか? –

+0

エンジニアリングがこれに取り組んでいるようです。あなたの+1を自由に追加してください。https://feedback.azure.com/forums/307516-sql-data-warehouse/suggestions/18024499-automatic-generation-and-updating- of-table-statist –

1

ご存知のように、統計が(this articleに応じて)を作成する必要がありますなJOINに関連する列に基づいて

、GROUP BYは、HAVINGおよびWHERE句。

これを行うツールはありませんが、EXPLAINプランにアクセスできる場合は、特定の情報を提供します。

<shuffle_columns>col;</shuffle_columns> 

ならびに無数の他の情報:たとえばshuffle_columns要素はSHUFFLE_MOVEに関わるすべての列が一覧表示されます。 Azure SQLデータウェアハウスプランhereの注釈を確認してください。

最後に、私は実際にこれをやったことはありませんでしたが、SQL Server 2016でデータベースのコピーを設定することができました。 、ユニークなインデックスの欠如など)。これにより、インデックスの提案や統計情報の使用状況を示すトレースフラグなど、実行計画などの有用なリソースにアクセスできます。私は、データベースエンジンとインデックス作成が本当に異なっていることを意味しているので、これがいかに価値があるのか​​分かりません。私はこれについて私の考えを進めるなら、私はポストバックします。私は "なぜこのクエリが遅くなっているのですか?"ツールはまだ成熟していないので、このプラットフォームでは、通常の "箱の製品" SQL Serverは、答えがはるかに難しい。

+1

SQL DWとPDWの統計は従来の目的だけでなく、データ移動のコストを見積もるためにも、私は懐疑的ですが、結果を見ることに本当に関心があります。パラレルクエリプランの場合 –

+1

また、最適な並列クエリプランを保証するために、すべての列の統計を開始点として配置し、必要に応じてペアを作成することをお勧めします。列がJOIN、GROUP BY、HAVING、またはWHERE句に含まれていない場合でも、列を除いて、プラットフォーム内のノード間で不必要な、または最適でないデータ移動を実行するリスクがあります。 –

関連する問題