【发布时间】: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 快得多。