sql-server - 存储过程中的表值参数有哪些缺点?

标签 sql-server tsql sql-server-2008 table-valued-parameters

我使用过各种版本的 MS SQL Server,包括 2000、2005、2008、R2、(某些)Denali。我从来没有对像存储过程中的表值参数这样的新功能如此兴奋。我也进行 C# 开发,并且正在挖掘 TVP,我使用它来最大限度地减少前端应用程序的数据库调用数量。

现在我真正的问题是使用表值参数有什么缺点。这几乎好得令人难以置信。

请分享您的想法。另外,我不想太深入地使用它并且必须改变。

最佳答案

表值参数几乎没有实际缺点。

好处

  • 频繁使用时缓存
  • 非常高效地促进批量插入
  • 减少与服务器的往返次数

缺点:

  • SQL Server 不维护 TVP 列的统计信息
  • 只读
  • 不能用作“Select Into”或“Ins​​ert Exec”语句的目标
  • 仅适用于 Sql Server 2008 及更高版本

引用文献

关于sql-server - 存储过程中的表值参数有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129949/

相关文章:

sql-server - 如何在SQL Server中生成十个绝对随机数字?

sql - 如何对时间段进行分组并检查休息时间

sql-server - 您可以对数据透视表中的行和/或列进行小计吗?

sql - 比较字符串,如果它在 Sql Server 2008 中为 NULL

java - 插入时如何忽略重复行

mysql - JdbcTemplate 未将结果映射到映射 : related with windows ascii

c# - 从大型数据库中检索行时优化灵活的 Linq to Entity 标准的性能

sql - 如何查看SQL存储过程的运行进度?

sql-server-2008 - 带有多个 AND 和 OR 的 SQL Select

sql-server-2008 - 删除表,然后无法重新创建同名表