我使用SQL Server 2008我的存储过程接受近150参数。 这有什么不对的性能代价?
Answer 1:
没有错性能明智的,但它的气味的东西,可以使用动态SQL来实现更好。 很难说没有看到代码。
Answer 2:
当您使用SQL Server 2008中您可以使用新表的参数。 如果这些参数都是一样的,你可以很容易地使用表参数。
这里是链接到MSDN 。 这里是另一个链接 ,多一点解释
请享用。
Answer 3:
也许这是不是从性能的角度来看问题。 但是,从维护的角度。
你可以考虑将数据作为一个XML参数。 有关详细信息,请参阅:
http://msdn.microsoft.com/en-us/library/dd788497.aspx
Answer 4:
最大为1024,但我认为是150多一点
Answer 5:
在SQL Server新闻组的常客将熟悉乔·塞科和托尼·罗杰森,其中一人是在非常受是否是使用存储过程有大量的参数是一个好主意之间的许多争吵。
因为这个问题是专门关于性能,这里的论点托尼方:
不要使用CSV / XML -用1000个参数而不是!
托尼·罗杰森是同胞英国人(US =石灰质)和标题具有讽刺意味(US = NULL)。
Answer 6:
你一定要确定所有参数的原因。
- 他们是值插入或更新到表? 然后,你可能会关闭使用这些值的表值参数更好。
- 他们是复杂的选择标准是什么? 然后,我怀疑你应该使用XML参数来传递的选择标准; 否则,你可能会重新评估与各种标准实际使用的频率。 您可能会发现一个简单的SP将满足在80%的病例您的需求。
文章来源: Sql Stored Procedure With a Lot of Parameters