我一直在使用Visual Studio 2008中的SQLite Designer,我注意到当我使用生成的Insert / Update语句时,它们的运行速度非常慢。
示例:我有一个包含四列和5700行的数据表,将数据插入数据库表需要约5分钟
但是,我编写了自己的数据库连接并使用参数和单个事务插入方法,并在1秒内插入相同的5700行。
为什么生成的代码如此缓慢,甚至使用它有什么好处?
感谢。
内森答案 0 :(得分:0)
如果我正确理解插入语句是在代码隐藏中构建的,那么执行需要很长时间才是正常的...它必须被编译,处理变成CLR等。如果你使用存储过程数据库花费的时间较少,因为当你从代码隐藏中调用它时,该过程已经完成了这些步骤。直接使用数据库中的过程总是更好,更快,而不是在代码隐藏中使用它们。
答案 1 :(得分:0)
我已经读过SQLite中的默认行为是将每个Insert语句包装在一个Transaction中,我认为这解释了你所看到的行为。当SQLite引擎创建Insert语句时,需要很长时间,当你编写sql时,它运行得非常快。