我在一种情况下,我需要做一些比较,一些产品是在购物车。购物车可以有用户想要的多少物品,但平均每辆车大约有5-15个项目。
我的问题是关于优化/开销。我需要检查每个产品在哪个部门,并确定运费。每个产品的部门并不直接与产品相关(即在产品定义表中没有部门id列),但是我可以根据产品id查询和获取部门id。
这就是我的问题所在。将id的列表传递给存储过程,并在存储过程中使用类似于表值参数的列表来查询现有表,这样会更好(减少开销/速度)吗?或者一次只查询产品1会更快(假设aver购物车的大小在5-15的高端),获得部门id,然后转到下一个项目吗?
我从未使用过TVP,我正在尝试从堆栈溢出和msdn站点上发布的其他一些问题中学习。所以,在我花很多时间试图得到我想要的结果之前,我提出了这个问题。
发布于 2013-08-29 16:21:03
一般来说,TVP应该更快(如果你需要的话更容易使它更快)。列表越大,TVP对每个ID的查询就越有利。
这是一个更多的开发工作来设置使用TVP,所以,如果您永远不会有超过一个小的列表(例如3或更少),那么它可能是不值得的,但否则它肯定是一个更好的方法。
https://stackoverflow.com/questions/18515794
复制相似问题