1

我有一个存储过程要编写,我只需要一个字段中的两个属性。最有可能的是,它一次只能处理一个,也许是两个或三个领域。它也应该是一个 CLR 存储过程。

作为 SQL 的初学者,在我看来传递表值参数是多余的,但是由于这是为了工作,而且是一家相对较大的公司,我想知道是否还有其他考虑因素?与普通参数相比,使用表值参数的确切值是多少。

4

1 回答 1

0

我没有看到您的问题中概述了对 CLR 的需求,但是 TVP 肯定有用途。

我已经看到逗号分隔的列表被传递到 SQL 存储过程中,TVP 可以在那里用于更好的类型检查和结构。

它还有助于企业级的稳健性;我的工作是在大约 1 小时内尝试 150 万次插入。用单独的插入(一个接受一堆标量参数的过程)来做这件事是资源密集型的,而且非常非常慢;当转换为使用表值参数执行批量插入时,操作在大约 1/5 的时间内完成。

于 2015-03-19T07:27:50.857 回答