【发布时间】:2018-03-19 20:19:41
【问题描述】:
如何将条件添加到单个存储过程以返回一个项目或加入 tvp 以返回多个项目?
所以我希望能够做到
Select *
From table
where id = @id
或
Select t.*
From table t
join tvp tvp on t.id = tvp.id
每次只为一个项目传递一个 tvp 会很糟糕,这样我就可以避免第一次查询吗?我是不是很懒惰,这应该只是两个不同的存储过程吗?
【问题讨论】:
-
单行传递 tvp 有什么问题?
-
@SeanLange 这就是我问的原因。如果只有一行,使用 tvp 不会影响性能吗?在我的应用程序中,单行检索发生的次数远多于批量加载。
-
您可以相信我的话,但是...尝试一下并检查您系统上的性能差异不是更简单、更快、更好吗?
-
@SeanLange 今天我必须在 COB 之前完成它!
-
大声笑,所以你宁愿冒险互联网上有人给你可靠的建议,而不是自己测试?此时距您发布问题已有 23 分钟。您本可以编写一个快速测试并在不到 10 分钟内找到答案。在这里不要试图无用,但最好的性能答案来自于将要运行的系统上的测试。
标签: sql sql-server stored-procedures table-valued-parameters