我一直在编写一些新的存储过程,发现自己在少数情况下会返回 6-8 个结果集。我一直假设结果集存在某些应该避免的低效率问题。
看来我的选择是使用结果集或构造复杂对象的 xml 表示并使用 SQL-XML 通道返回它们(这是为了避免博客被 ADO 客户端截断)。有没有人对这些选择的性能和/或相对效率有任何经验,并可能对每种选择的优缺点提供一些见解?
有关其他上下文...
- 每个结果集不会超过 30 列,大多数在 10 左右
- 列数据主要是整数(1 到 8 个字节)和一些介于 50 到 2000 个字符之间的字符串
- 在峰值负载期间,我们预计所讨论的 SPROC 每秒查询 5-9 次,尽管有一个用例可能是每秒 10 次
- 就我们所见,非规范化为更平坦的视图并不是真正合理的选择
我更喜欢多个结果集,因为它更快,使用更少的内存并且更容易处理。
但一切都取决于数据的消费者——例如,如果它只能接收 XML——你别无选择 8-)