Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Database ADO.NET数据库访问_Database_Ms Access_Ado.net - Fatal编程技术网

Database ADO.NET数据库访问

Database ADO.NET数据库访问,database,ms-access,ado.net,Database,Ms Access,Ado.net,我已经用VB.NET编写了一个程序,这个程序所做的一件事就是将记录插入Microsoft Access数据库。我的程序访问数据库的后端是作为一个可互换的层编写的。如果我用一个使用MicrosoftSQLServer数据库的层“交换”这个层,我的程序就会飞起来。如果我使用MS Access,它仍然非常快,但速度要慢得多。是否有人对如何使用Microsoft Access加速ADO.NET事务有任何提示或提示?我真的更愿意通过SQL Server使用MS Access,这样我就可以用我的程序分发我的

我已经用VB.NET编写了一个程序,这个程序所做的一件事就是将记录插入Microsoft Access数据库。我的程序访问数据库的后端是作为一个可互换的层编写的。如果我用一个使用MicrosoftSQLServer数据库的层“交换”这个层,我的程序就会飞起来。如果我使用MS Access,它仍然非常快,但速度要慢得多。是否有人对如何使用Microsoft Access加速ADO.NET事务有任何提示或提示?我真的更愿意通过SQL Server使用MS Access,这样我就可以用我的程序分发我的数据库(而不是连接到某个远程SQL Server)。有什么建议吗?另外,当我创建MS Access数据库时,我是在Access 2000兼容模式下创建的。使用2003兼容模式会更快吗


提前感谢

正如您所经历的那样,访问不是最佳的


你看过了吗。它可以与您的应用程序一起嵌入和分发……而且性能应该比Access好得多。

正如您所经历的那样,Access并不是最理想的

你看过了吗。它可以与您的应用程序一起嵌入和分发…并且性能应该比Access好得多。

将为您带来相同的好处-一个可以部署和分发的单一数据库文件(只要您在应用程序中包含运行时程序集)。 与完整的SQL Server实例相比,它减少了查询功能,但肯定比Access引擎快

我将它与一个带有桌面组件的移动应用程序一起使用,它完成了我需要它做的所有事情。

将为您提供相同的好处—一个可以部署和分发的单一数据库文件(只要您在应用程序中包含运行时程序集)。 与完整的SQL Server实例相比,它减少了查询功能,但肯定比Access引擎快


我将它与一个带有桌面组件的移动应用程序一起使用,它完成了我需要它做的一切。

您是否同时在Access中打开了Access后端?如果是这样,请在不打开的情况下尝试您的程序。如果这加快了速度,那么您应该打开数据库连接或记录集(针对记录较少的表),并在处理数据时保持其打开状态


问题是,如果针对Access数据库文件打开和关闭对象或记录集,而Access数据库文件中有其他人,Jet会浪费大量时间对LDB文件执行锁定。因此,保持与Access数据库文件的永久连接可以解决此问题。

您是否同时在Access中打开了Access后端?如果是这样,请在不打开的情况下尝试您的程序。如果这加快了速度,那么您应该打开数据库连接或记录集(针对记录较少的表),并在处理数据时保持其打开状态


问题是,如果针对Access数据库文件打开和关闭对象或记录集,而Access数据库文件中有其他人,Jet会浪费大量时间对LDB文件执行锁定。因此,保持与Access数据库文件的永久连接可以解决此问题。

尽管您需要安装它,但SQL Server Express支持“XCopy文件部署”,在这种情况下,部署应用程序只需发送一个.mdf文件和可执行文件

详情见MSDN


这确实支持存储过程:我在单元测试中使用它动态创建模拟数据库。

尽管您需要安装它,但SQL Server Express支持“XCopy文件部署”,部署应用程序所需做的一切就是提供一个.mdf文件和可执行文件

详情见MSDN


这确实支持存储过程:我在单元测试中使用它动态创建模拟数据库。

根据我的经验,ADO.NET对于MS Access没有太多优化。在某些情况下,使用旧的ADO或DAO接口(在VB.NET中通过COM提供)可以将性能提高约20倍或更多。但这在很大程度上取决于您的程序真正执行的SQL语句(大量的批量更新/插入,或大量具有大型结果集的查询,或大量交互式加载转换存储周期)。

根据我的经验,ADO.NET对于MS Access并没有太多优化。在某些情况下,使用旧的ADO或DAO接口(在VB.NET中通过COM提供)可以将性能提高约20倍或更多。但这在很大程度上取决于您的程序真正执行的SQL语句(大量的批量更新/插入,或大量具有大型结果集的查询,或大量交互式加载转换存储周期)。

MSDN提供了一篇关于如何加速ADO.NET的文章: 尽管这篇文章有点灰蒙蒙的,但它还是有几个优点:)


除此之外,我自己使用MS Access发现一些技术,如数据缓存、无源方案选择或优化查询等,都适合将性能保持在中等水平。

MSDN提供了一篇关于如何加速ADO.NET的文章: 尽管这篇文章有点灰蒙蒙的,但它还是有几个优点:)


除此之外,我自己使用MS Access,发现一些技术,如数据缓存、无源方案选择或优化查询,都适合将性能保持在中等水平。

是的,据我所知,是因为它不支持存储过程,而我有很多,转换起来会很麻烦。访问如何不太理想?呃,访问支持存储过程吗?由于性能原因,访问不太理想。查询引擎比SQL Server Compact慢,您必须通过ODBC而不是本机调用访问,文件大小有限,并且您无法获得存储过程(这对我来说不是什么大问题,b