改進多列上的不同計數查詢
對多列上的不同值進行計數是資料分析中的常見要求。實現此目的的一種方法是使用子查詢,如提供的程式碼片段所示。但是,這種方法可能會影響效能。
替代解決方案:持久計算列
要增強此類查詢的效能,請考慮使用持久計算列。持久計算列根據定義的表達式計算並儲存值。在這種情況下,您可以建立使用雜湊函數或串聯組合兩列的計算列:
ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + ',' + DocumentSessionId) PERSISTED
持久化後,計算列將成為可用於快速查詢的索引確定性列。透過計算該計算列的不同值,您可以獲得與子查詢方法相同的結果:
SELECT COUNT(DISTINCT ComputedColumn) FROM DocumentOutputItems
好處:
注意:此方法的有效性取決於資料分佈和資料庫設定的正確配置。
以上是持久計算列如何提高跨多個列的不同計數查詢的效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!