C#学习教程:SqlDataAdapter如何在内部工作?分享


SqlDataAdapter如何在内部工作?

我想知道SqlDataAdapter是如何在内部工作的,特别是在使用UpdateCommand来更新巨大的DataTable (因为它通常比从循环中发送sql语句快得多)。

这是我想到的一些想法:

它使用SQL Server客户端类的内部工具,称为命令集 。 您可以使用单个命令向SQL Server发送多个批处理。 这减少了每次呼叫的开销。 你有更少的服务器往返等。

每个语句更新一行,每个批次发送一个语句,但每个往返发送多个批次。 这个清单中的最后一点是神奇的酱汁

不幸的是,这个设施没有公开曝光 。 Ayende对此进行了攻击并为其构建了一个私有reflection基础API。

如果您想了解更多信息,我建议您查看内部SqlCommandSet类。

也就是说, 您可以自己比这更快 :使用TVP传输更新数据并发出更新许多行的单个UPDATE 。 这样就可以保存所有按批次,每次往返和每个语句的开销。

这样的查询看起来像这样:

上述就是C#学习教程:SqlDataAdapter如何在内部工作?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 update T set Tx = @src.x from T join @src on T.ID = @src.ID 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031798.html

发表评论

邮箱地址不会被公开。 必填项已用*标注