我们有一个冗长的数据库 *** 作。 当我们用enList = true执行这个 *** 作时,需要29分钟才能完成。 当我们用enList = false执行这个 *** 作时,只需要15分钟就可以完成。 如此巨大的performance打击的原因是什么? 这与数据库服务器有关吗?
我们如何避免它? 请分享你的想法。
数据库: sql Server 2005
Frameowrk: .Net 3.0
我如何使用“networking服务”帐户启动控制台应用程序
ServiceBase.Run(数组)只在数组上开始第一个入口
我如何在PowerShell中引用UWP类
HRESulT:0x80040154(REGDB_E_CLASSNOTREG))
使用.NET监视windows 7中的声卡输出
调用“运行”命令
什么时候由.NET进程分配的内存被释放回windows
exception在非英文 *** 作系统上通过SpecialFolder目录recursion
耙在windows上 – 复制目录到另一台服务器
添加条目DNS客户端parsing器caching,而不使用主机文件
我们如何避免它?
和
csv文件中的总行数是100000。
在这种情况下,使用sqlBulkcopy将100,000行写入临时表(一个基本的和单独的表,不是你的事务表的一部分;没有触发器,外键等)。 一旦数据在暂存表中,使用Tsql(直接或SPROC)从登台表执行INSERT到事务表(即数据所在的位置)。 事务只需要跨越这最后一个 *** 作。
这实现了几个关键的事情:
sqlBulkcopy使用与批量插入相同的API; 这是将大量数据通过线路转移到sql server的最快方法
它最大限度地减少了交易的规模,最显着的是不包括交易中的所有数据传输时间; 只有核心INSERT是事务性的,但是在这一点上所有的数据都是本地的
总结以上是内存溢出为你收集整理的交易登记performance问题全部内容,希望文章能够帮你解决交易登记performance问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)