我正在構建一個應用程序,並且希望將多個查詢分批到數據庫的一次往返。例如,假設單個頁面需要顯示用戶列表,組列表和權限列表。在一次往返中執行多個SQL命令
所以我存儲了特效(或簡單的sql命令,如「select * from Users」),我想執行其中的三個。但是,要填充這一頁,我必須進行3次往返。
現在我可以編寫單個存儲過程(「getUsersTeamsAndPermissions」)或執行單個SQL命令「select * from Users; exec getTeams; select * from Permissions」。
但我想知道是否有更好的方法來指定在一次往返中做3次操作。好處包括更容易進行單元測試,並允許數據庫引擎對查詢進行平行化。
我使用C#3.5和SQL Server 2008
如果這是ASP.Net,並且數據庫服務器緊挨着Web服務器(或者它只是一個內部應用程序),那麼這很可能是一個不成熟的優化.. – Earlz 2010-02-25 18:18:24
@Earlz,或者過早優化或者解決其他一些設計問題。 – 2010-02-25 18:26:52
每當我回過頭來閱讀這個問題,我感到很開心,有多少人閱讀了我爲這個問題編寫的簡單例子,並假設他們比我更瞭解我的應用程序的性能特徵。 – tster 2014-07-03 15:43:33