- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 .Net Aspx 页面或 Web 服务需要在表中执行大约 20-200 行插入的情况下,您会推荐以下哪种方法?为什么?小的性能提升可能意味着我仍然会使用我最熟悉的方法,所以请告诉我它是否不会产生太大的影响。任何有关何时真正有意义地使用其中一种而不是另一种的一般指导将不胜感激。
其他注意事项:每个插入所需的逻辑处理量各不相同,但可以假设需要的逻辑处理量很少。我最感兴趣的是,这些小批量插入的四种选择之一是否可以带来显着的性能/易用性/其他好处,每天会迭代数十到数百次。
最佳答案
对于如此少量的行,我个人会选择 Table Valued Parameters - 这是它们的最佳用途之一。
我将SqlBulkCopy
作为处理大量数据和多个表的主力。
XML 参数会占用大量处理器资源,而且 XML 仍然不像 TVP 那样原生于 SQL Server。
多次插入是迄今为止最糟糕的选择 - 200 个连接、200 个事务等...
<小时/>关于哪个选项效果最好的真正答案取决于您的具体情况。您需要测试所有方法并选择最适合您的方法。
关于.net - SqlBulkCopy 与 SqlBulkCopy 的比较TVP VS。 XML 参数对比20-200 个插入的单独插入过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618261/
下面是插入我的数据的函数。 using (SqlCommand insSwipeDataCommand = connection.CreateCommand())
我已经创建了一个 TVP,我试图在存储过程中使用它来输入到存储过程中。 问题是我无法用它创建我的 SP。它说 Msg 137, Level 16, State 1, Procedure uspGetU
我有一个使用以下类型作为参数的存储过程 CREATE TYPE [dbo].[columnOrderTableType] AS TABLE ([id]
我需要从 .NET 4.5 应用调用存储过程。作为 ORM,我使用 Dapper。 存储过程接受 TVP 参数,仅当具有 car_id 的汽车不存在时,才将汽车从列表插入到表 Cars。 表格: CR
我有一个接受表值参数以及其他参数的过程: CREATE PROCEDURE [dbo].[Update_Records] @currentYear INT, @country INT,
我的数据库中有一个存储过程,它采用表值参数,即包含单个整数 Id 列的 IdTable 对象列表。 我有一个用于数据库的实体模型,并希望执行以下操作... ProjectEntities projec
C# devloper 玩 python,我在使用 SQLAlchemy 将行插入 SQL 数据库时遇到问题。 更新代码是这样的。 def updateDatabase(self, testSumma
我想截断 TVP 而不是 DROPPING。 当我编写 TRUNCATE TYPE 时,它给出了错误。 DROP TYPE 正在工作,但我想要 TRUNCATE 谁能帮我解决语法问题吗? 谢谢 最佳答
我正在使用 SQL Server 2008 R2,并且创建了一个 TVP,我想将其用作存储过程的参数,但我收到一条消息,指出找不到它或我没有权限. 我可以在脚本或存储过程的主体中使用 TVP,但是当我
我想截断 TVP 而不是 DROPPING。 当我编写 TRUNCATE TYPE 时,它给出了错误。 DROP TYPE 正在工作,但我想要 TRUNCATE 谁能帮我解决语法问题吗? 谢谢 最佳答
SQL Server 具有表值参数,允许您将值数组作为参数传递。 实现类似于 PostgreSQL 查询的合适方法是什么,这样我就可以做类似的事情: 从 id 为 ($1) 的产品中选择 * 我正在使
在代码隐藏中,您可以将 TVP 添加为存储过程的 SqlDbType.Structured但这在 ASP.NET SqlDataSource 控件中不存在。 我已将数据表存储在 session 变量中
我需要将项目集合传递给存储过程。存储过程将它们插入到多个表中。我使用声明的自定义用户类型的表值参数。 TVP 类型: CREATE TYPE [dbo].[Type1] AS TABLE (
我正在使用 TVP,并且试图将数据表作为 TVP 传递给存储过程。当命令尝试 ExecuteNonQuery 时,它会引发错误: 操作数类型冲突:datetime2 与 int 不兼容。表值参数“@t
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
我正在尝试将 TVP 与 tedious 一起使用,但在使用 DateTime 参数时不断出现此错误。 构建请求时的异常是: days = Math.floor((parameter.value.g
我是一名优秀的程序员,十分优秀!