我最近将.NET开发从较旧的Core2Duo 2.93 GHz PC转移到新的Core i7-3820 3.6 GHz计算机。没有对项目代码或数据库布局进行任何更改。两台计算机都使用相同的SQL Server 2012 Express和高级服务(而不是LocalDB)。
我观察到INSERT INTO命令显着减速:旧机器上每行需要1-2毫秒,现在需要8-9毫秒。我能找到的唯一修复是在一个命令中使用多行插入,这似乎在许多行上分散了命令的开销。与在SQL Server 2008 R2中一样,在SQL Server 2012中,一个此类命令中的行数限制为1000: http://msdn.microsoft.com/en-us/library/dd776382.aspx
但是,多行解决方法并不适用于所有方案;例如表适配器更新逐行进行并需要很长时间才能完成。
有没有人遇到过这个问题?我将如何解决它?
答案 0 :(得分:0)
cpu肯定更好但是磁盘io呢?插入显然依赖于该子系统。
碰巧我只是在读这篇文章http://www.altdevblogaday.com/2012/05/16/sql-server-high-performance-inserts/
似乎表值参数可以显着提高性能
评论导致以下页面有一些令人印象深刻的数字。
在评论http://florianreischl.blogspot.de/2012/03/performance-comparison-of-sql-server.html
中我自己还没有使用它,但是如果你有2008或者以上的话,tvp似乎是将数据从客户端泵送到sql server的方法。
答案 1 :(得分:0)