>實體框架:使用Contains
優化複合密鑰查詢
在實體框架中使用複合密鑰並利用
>的方法,需要仔細考慮以實現最佳性能。 存在幾種方法,每種方法都有自己的權衡。 Contains
效率低下的方法:
>
與元組一起加入:- 創建一個元組列表(鍵對)並直接加入它們的效率低下;實體框架難以將元素轉換為SQL。
>內存過濾:
將整個表檢索到內存中以進行過濾是不切實際的大型數據集。 -
>單獨的
語句:- 使用每個密鑰組件的單獨>子句都會產生不正確的結果。 >
Contains
計算值Contains
: >從關鍵組件中生成唯一值,並在此值上使用-
不是索引友好型(不可降低),並導致性能降級。
Contains
Contains
更有效的策略:
> hybrid
和內存中的加入:
>一種實用的方法涉及初步- 過濾器以減少數據集大小,然後進行內存連接以完善結果。這可以平衡可擴展性和復雜性。
帶有或條款的謂詞構建器
Contains
>>Contains
>使用謂詞構建器為每個密鑰組合構建查詢或從句,對於較小的列表是可行的,但是隨著列表的增長,性能會遭受 - 的效果。
>使用工會:
使用工會構造查詢,並為每個密鑰組合一個單獨的聯合提供了一種替代解決方案。 但是,對於大量組合而言,這可能會變得麻煩。 - >
選擇最佳方法取決於數據的大小以及您需要查詢的複合密鑰組合的數量。對於大型數據集,儘管複雜性增加,但通常優選混合
/內存聯接方法或工會。 對於較小的數據集,謂詞建築商可能就足夠了。 避免上面概述的效率低下的方法。
>
以上是如何使用實體框架的'包含”方法有效查詢複合鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!