我想知道WITH的性能影響是什麼?我是否應該儘可能地依靠WITH caluse?與消費羣體 - 性能和其他考慮事項
舉例來說,如果我有一個看起來像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的所有內容都進行一次限制,以限制讀者?作爲第二步做其他過濾。我猜這會影響性能。
b。我不應該只爲每個查詢創建一個使用者組?爲什麼不 ?
c。有點不同,不同產出的表現之間是否存在關係?如果我有幾個輸出,其中一部分是高吞吐量的CosDb集合,而另一部分是表格拼塊,這有什麼關係?雖然表格存儲分區更好。將兩者分割成不同的(輸入,消費者羣)對還是完全不同的ASA作業會更好嗎?
首先,感謝了一堆回答。我需要一些時間來編寫一些工具來讓我測試性能。有沒有辦法衡量ASA查詢的運行時間?或ASA +輸出文字或類似的東西。目前,我想給CosDB添加一個觸發器來記錄插入時間,並將其與ASA等數據上留下的不同時間戳進行比較。我的輸入是一個物聯網集線器,因此它可以進行分區和用戶分組(?)一個EventHub,我還不確定將分區或將許多用戶組添加到物聯網集線器的性能影響 – Shrulik
您是指什麼程度的並行化/分區,它對此有何影響?很高興知道WITH語句實際上做了什麼。它是否將結果保存在內存中?擁有許多消費者羣體的缺點是什麼?除了創造它們的麻煩之外。 – Shrulik
這似乎是衡量您的端到端流量性能的好方法。 WITH是告訴查詢優化器將調用分組在一起而不是並行執行的方法。由於您的查詢示例非常簡單,我認爲您不會對性能產生任何影響。如果您有複雜的查詢(JOIN等),則可能需要保持它們並行運行。您可以在這裏擴展ASA作業:https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-scale-jobs –