【发布时间】:2021-04-30 18:16:32
【问题描述】:
我有以下 2 个具有一对多关系的表。表 ORDER 和 ORDER_DETAILS。我正在使用 C# 调用存储过程来进行一些处理,但最终它应该返回带有相应详细信息的订单。
所以问题是以下 2 个中哪一个更优化。
- 选择订单并加入订单详情,然后在c#中获取数据。
- 有 2 个结果集、1 个订单和订单订单详细信息,然后在 c# 中构建数据。
我的猜测是,由于连接将在每个订单详细信息中重复订单表中的相同列,因此第二个选项是最好的。
您对以上内容有何看法。
【问题讨论】:
-
针对什么进行了优化?数据传输?数据库性能?我们在这里讨论了多少数据?
-
试图避免重复的列值是过早的优化。这就是 SQL 结果集的外观,在过去的三年多的时间里一直没有出现问题。
-
你想要所有的订单,还是只想要其中的几个?
-
您的描述太模糊了,任何人都无法在没有猜测的情况下制作有用的 cmets。忽略效率方面(直到您有实际需求才能衡量),您需要关注两个不同的事情。首先很好地描述了“进行一些处理并返回订单”的实际含义。其次是您的应用程序打算如何处理这些信息以及最有效地使用这些信息所需的格式。
-
如果你不想/喜欢“重复的列”,那么改变你的查询以不产生重复。
标签: c# sql sql-server query-optimization