Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C System.Data.SQLite设计器代码_C#_Sqlite_System.data.sqlite - Fatal编程技术网

C# C System.Data.SQLite设计器代码

C# C System.Data.SQLite设计器代码,c#,sqlite,system.data.sqlite,C#,Sqlite,System.data.sqlite,我在VisualStudio2008中一直在摆弄SQLite设计器,我注意到当我使用生成的Insert/Update语句时,它们的运行速度非常慢 示例:我有一个包含四列5700行的数据表,将数据插入数据库表大约需要5分钟 然而,我使用参数和单个事务编写了自己的数据库连接和插入方法,在1秒之内插入了相同的5700行 为什么生成的代码如此缓慢,使用它有什么好处 谢谢 Nathan如果我正确理解insert语句是在代码隐藏中构建的,执行它需要很长时间是正常的。。。必须将其编译、处理并转换为CLR等。如

我在VisualStudio2008中一直在摆弄SQLite设计器,我注意到当我使用生成的Insert/Update语句时,它们的运行速度非常慢

示例:我有一个包含四列5700行的数据表,将数据插入数据库表大约需要5分钟

然而,我使用参数和单个事务编写了自己的数据库连接和插入方法,在1秒之内插入了相同的5700行

为什么生成的代码如此缓慢,使用它有什么好处

谢谢


Nathan

如果我正确理解insert语句是在代码隐藏中构建的,执行它需要很长时间是正常的。。。必须将其编译、处理并转换为CLR等。如果在数据库上使用存储过程,则所需时间较少,因为从代码隐藏调用该过程时,该过程已经完成了这些步骤。直接从数据库使用过程总是比在代码隐藏中编写过程更好更快。

我已经读到SQLite中的默认行为是将每个Insert语句包装在事务中,我认为这解释了您看到的行为。当SQLite引擎创建Insert语句时需要很长时间,而当您编写sql时,它运行得非常快


您有权访问生成的方法吗?也许他们在做额外的工作,比如在事务中包装所有内容,或者可能在做额外的数据验证?我很确定他们在事务中包装所有内容,而且据我所知,我无法访问可以更改这些内容的方法。