我必须从SQL Server返回几个记录集以构造一个C#对象。尽管EF当前不支持(可能是beta版)返回此类复杂对象,但我不得不诉诸使用ADO.NET返回DataSet来检索数据,然后再将其转换为令人愉悦的C#表示形式,请参见下文。
SELECT * FROM ...
exec dbo.usp_SP1 @ProductID,@CatalogName
exec dbo.usp_SP2 @ProductID,@CatalogName
进行较少的数据库调用总是更好,但是由于此查询的执行方式,对每个DataSet发出多个请求会变得更糟吗?
最佳答案
一个数据库往返总是比三个(或两个)更好。
即使使用这组查询,您的代码也可能是干净的。您只需连续调用DataTable.Load
3次,即可从DbDataReader
加载所有三个结果集。
因此,是的,我建议对所有结果集使用一个更大的查询和一个DataSet
。
关于c# - SQL查询性能-哪种方法更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11363645/