我对博客文章的批处理事务进行了一些性能分析,我注意到当您使用批处理插入语句时,它的执行速度比等效的单个 SQL 语句要慢得多。
如下插入 1000 行大约需要 3 秒
INSERT TestEntities (TestDate, TestInt, TestString) VALUES
('2011-1-1', 11, 'dsxcvzdfdfdfsa'),
('2011-1-1', 11, 'dsxcvzdfdfdfsa'),
('2011-1-1', 11, 'dsxcvzdfdfdfsa')
如下插入 1000 行需要 130 毫秒
INSERT TestEntities (TestDate, TestInt, TestString) VALUES ('2011-1-1', 11, 'dsxcvzdfdfdfsa')
INSERT TestEntities (TestDate, TestInt, TestString) VALUES ('2011-1-1', 11, 'dsxcvzdfdfdfsa')
INSERT TestEntities (TestDate, TestInt, TestString) VALUES ('2011-1-1', 11, 'dsxcvzdfdfdfsa')
这似乎只在您第一次在表上使用批量插入时发生,但它是可重现的。
另请注意,即时插入的数据是随机的(但两个查询相同)
编辑:
这是我用于此案例的虚拟随机数据的复制案例:https ://gist.github.com/2489133