1

我处于需要对购物车中的某些产品进行比较的情况。购物车可以包含用户想要的任意数量的物品,但随着时间的推移,平均每个购物车大约有 5-15 件物品。

我的问题是关于优化/开销的问题。我需要检查每个产品所在的部门并确定运费。每个产品的部门与产品没有直接关系(即产品定义表中没有部门id 列),但我可以根据产品id 查询并获取部门id。

这就是我的问题所在。将id列表传递给存储过程并使用存储过程中的列表和表值参数之类的东西来查询现有表会更好(更少的开销/更快)吗?或者一次只查询产品 1 会更快(假设平均购物车大小在 5-15 的高端),获取部门 ID,然后进入下一个项目?

我从未使用过 TVP,我正在尝试从堆栈溢出和 msdn 站点上发布的其他一些问题中学习。因此,在我花费大量时间试图获得我想要的结果之前,我提出了这个问题。

4

1 回答 1

1

通常,TVP 应该更快(如果需要,可以更轻松地使其更快)。列表越大,与每个 ID 一个查询相比,TVP 应该越有利。

设置使用 TVP 需要更多的开发工作,所以如果你永远不会有超过一个小列表(比如 3 个或更少),那么它可能不值得,但否则它绝对是一个更好的方法。

于 2013-08-29T16:21:03.817 回答