【问题标题】:Slow execution of queries on a Microsoft Access database via ADO .Net通过 ADO .Net 对 Microsoft Access 数据库的查询执行缓慢
【发布时间】:2014-03-10 11:09:52
【问题描述】:

我正在我的公司将 C++ 层重新实现为 C# 层。
SQL 查询通过 ODBC 数据源在 Microsoft Access 数据库的层中执行。
该数据库是一个 .mdb 文件,而 ODBC 数据源使用以下驱动程序:Microsoft Access Driver (*.mdb)。

C++ 层使用 Windows ODBC API 通过 ODBC 数据源执行 SQL 查询。
例如调用 SQLExecDirect 函数来执行 SQL 查询。

C# 层使用 ADO .Net OdbcConnection 类通过 ODBC 数据源执行 SQL 查询。

使用 C++ 层时,多个 SQL 查询的执行时间不到 1 分钟。
使用 C# 层时,执行相同的 SQL 查询大约需要 20 分钟。
有谁知道为什么使用 C# 层时执行速度较慢?

任何帮助将不胜感激

【问题讨论】:

  • 不,不应该。我们可以有一个显示这种行为的查询示例吗?您是否分析过这是一个数据访问问题(即不是背后的处理)?
  • 在使用 MS Access 时,使用 DAO(请注意这不是旧技术)通常比使用 ADO 快得多。

标签: c# ms-access ado.net odbc


【解决方案1】:

我找到了使用 C# 层时查询执行速度慢的原因。
我忘了处置 IDbCommand 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2010-12-14
    相关资源
    最近更新 更多