- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几个月里,我遇到过多种情况,遗留的 sql SP 返回一个主要由冗余信息组成的表。
例子:
从...中选择 CustomerID、CustomerEmail、CustomerAddress、InventoryLineItem、ShipQty
返回:
55 a@b.com 723 StreetName InvLineItem#1 45
55 a@b.com 723 StreetName InvLineItem#2 42
55 a@b.com 723 StreetName InvLineItem#3 1
55 a@b.com 723 StreetName InvLineItem#4 5
55 a@b.com 723 StreetName InvLineItem#5 200
55 a@b.com 723 StreetName InvLineItem#6 7045
(前 3 个字段永远不会改变)
因为我是该项目的唯一开发人员,所以我开始将其分成两个选择语句。 (我也在处理接收 .NET 代码)
从...中选择 CustomerID、CustomerEmail、CustomerAddress。
Returns: 55 a@b.com 723 Streetname <-- 1 record
从...中选择 InventoryLineItem、ShipQty。返回:
LineItem#1 45
LineItem#2 42
LineItem#3 1
等等
显然 .NET 中生成的数据集较小,但有时在 select 语句中有 10 个字段在所有情况下都完全相同,这确实让我很烦恼。一些查询甚至可能返回数千条记录中的十分之一。
我觉得我在这里做的事情是正确的,但话又说回来,我不是 SQL 专家。
我有什么理由避免这种做法吗?
提前感谢您的宝贵时间。
最佳答案
如果您的客户端使用从存储过程返回的数据可以正确处理多个结果集,那么不,绝对没有理由不使用它们。
正如您自己指出的那样,它们有几个优点:
- 减少传输的数据量- 保持规范化,没有不必要的重复数据- 与必须调用两个单独的存储过程(一个用于 header ,一个用于详细数据)相比,可以节省往返服务器的时间
总而言之 - 加油! :-) 对我来说似乎是个好主意。
马克
关于SQL Server 2005 - 返回带有存储过程的多个表是否有任何重大负面影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252837/
不久前,我不小心将一个项目文件转换为 Visual Studio 2010(当然,没有源代码控制)。虽然没有重新创建项目文件(这将只需要大约 10 或 15 分钟),而是查看了典型的 2008 项目文
我是一名优秀的程序员,十分优秀!