【发布时间】:2011-01-21 03:17:34
【问题描述】:
我正在构建一个应用程序,我想将多个查询批处理到一个数据库的单次往返中。例如,假设单个页面需要显示用户列表、组列表和权限列表。
所以我已经存储了过程(或者只是简单的 sql 命令,如“从用户中选择 *”),我想执行其中的三个。但是,要填充这一页,我必须进行 3 次往返。
现在我可以编写一个存储过程(“getUsersTeamsAndPermissions”)或执行一个 SQL 命令“select * from Users;exec getTeams;select * from Permissions”。
但我想知道是否有更好的方法来指定在一次往返中执行 3 次操作。好处包括更容易进行单元测试,并允许数据库引擎并行化查询。
我正在使用 C# 3.5 和 SQL Server 2008。
【问题讨论】:
-
如果这是 ASP.Net,并且 DB 服务器就在 Web 服务器旁边(或者它是一个仅限内部的应用程序),那么这很可能是一个过早的优化......
-
@Earlz,要么是过早的优化,要么是对其他一些设计问题的修复。
-
每次我回来阅读这个问题时,我都会对有多少人阅读我的简单示例感到好笑,我弥补了这个问题,并假设他们比我更了解我的应用程序的性能特征。
-
请在此处阅读我的回答:stackoverflow.com/a/49687720/538387
标签: c# .net sql-server ado.net data-access