WITHのパフォーマンスへの影響は何ですか? WITH caluseに可能な限り依存することを好むべきですか?例えばWITH WITHコンシューマー・グループ - パフォーマンスおよびその他の考慮事項
、私はそのように見えるquereis持っている場合:
Select * from Input1 i where i.type = 'something'
Select * from Input1 i where i.type = 'something-else'
Select * from Input1 i where i.type = 'something-else' and i.cost > 500
Select * from Input1 i where i.size < 10
。読者を制限するために、Input1からすべてのものにWITHを付けるべきですか?もう一方のフィルタリングを2番目のステップとして実行します。私はこれがパフォーマンスを傷つけるだろうと推測しています。
b。クエリごとにコンシューマグループを作成してはいけませんか?何故なの ?
c。少し異なる、異なる出力のパフォーマンスの間には関係がありますか?もし私がいくつかの出力を持っていれば、それらの一部が高処理量のCosDbコレクションであり、部分がテーブルストロークであるかどうかは重要ですか?テーブルストレージははるかに良い分割されていますが。 2人を異なる(入力、消費者グループ)のペア、あるいはまったく異なるASAの仕事に選ぶ方が良いでしょうか?
まず、おかげでたくさん。私はパフォーマンスをテストできるようにいくつかのツールを書くのに少し時間が必要です。 ASAクエリの実行時間を測定する方法はありますか?またはASA +の出力ライティングなど。現時点では、CosDBにトリガーを追加して挿入時間を記録し、ASAなどがデータに残したタイムスタンプと比較することを考えました。私の入力はIoTハブなので、パーティション化でき、消費者グループ化(?イベントハブ、IoTハブに多くのコンシューマグループを分割する、または追加することによるパフォーマンスの影響についてはまだ分かりません – Shrulik
並列化/パーティション化の程度はどういう意味ですか、どのように影響を受けますか? WITH文が実際に何をしているか知っているといいでしょう。結果は記憶に残っていますか?多くの消費者団体を持つことの問題は何ですか?それらの作成の気になることのほかに。 – Shrulik
E2Eフローのパフォーマンスを測定するのは良い方法のようです。 WITHは、照会オプティマイザーに、その入力を並列に処理するのではなく、それらの呼び出しをまとめてグループ化するように指示する方法です。あなたの例は非常にシンプルなので、パフォーマンスには影響しません。複雑なクエリ(JOINなど)がある場合は、それらを並列に実行し続ける必要があります。 ASAジョブのスケーリングについては、次のURLを参照してください。https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-scale-jobs –