簡體   English   中英

從數據庫中檢索多個對象的有效方法

[英]Efficient way to retrieve multiple objects from database

今天快速的問題......什么是更高效的,並且在SQL Server操作之間的性能差異很大。

  1. 在一個單獨的事務中,在四個單獨的選擇查詢中選擇四個對象(僅通過id獲取它們),或者

  2. 在單個查詢中選擇它(當然更復雜,有連接)。

我會告訴你,我寧願喜歡第一個解決方案,但我需要知道效率是否低得多(如果效率較低的話)。

感謝您的任何意見..

通常,多個查詢效率較低,因為可能存在網絡往返以及每個查詢的一些其他開銷。 您可以做的最有效的方法是在所需的查詢次數最少的情況下檢索所需的數據。

另一方面,如果使用批處理,則可以在一次數據庫往返中執行多個查詢,這可能與在單個查詢中訪問對象的時間大致相同。

如果你只加載幾個對象,那沒關系。 業務邏輯的可維護性(最可能取決於您選擇的解決方案)更為重要。

連接和構建對象的復雜性可以通過ORM完成。 你不必自己實現這些東西。 使用NHibernate,您可以使用復雜查詢或按id的單個實例檢索對象。 而且 - 它還支持ADO.NET的批處理和其他一些重要的性能改進。

你的問題在信息上有點薄......如果對象在同一個表中,它們應該在一個查詢中獲取,特別是如果你已經知道它們的id。

選項2將更快,因為它減少了網絡“往返”。 提交每個查詢,然后等待服務器編譯查詢計划並執行它,對於您提交的每個查詢都會重復; 如果您可以從一個查詢中獲取所需信息,通常會更快。 但是,在性能方面,如果您查詢數百或數千個非常“寬”的記錄,它可能只會引人注意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM