小编Kar*_*ter的帖子

通过ADO.Net和COM互操作性进行MS Access批量更新

这是这个帖子的后续行动.这都是.Net 2.0 ; 对我来说,至少.

从本质上讲,Marc(上面的OP)尝试了几种不同的方法来更新具有100,000条记录的MS Access表,并发现使用DAO连接比使用ADO.Net 大约10-30倍.我走了几乎相同的路径(下面的例子)并得出了相同的结论.

我想我只是想了解为什么 OleDB和ODBC速度要慢得多,我很想听听自2011年那篇文章以来是否有人找到了比DAO更好的答案.我真的更愿意避免使用DAO和/或自动化,因为他们要求客户端机器具有Access或数据库引擎可再发行(或者我坚持使用不支持.ACCDB的DAO 3.6).

原始尝试; 100,000条记录/ 10列约100秒:

Dim accessDB As New OleDb.OleDbConnection( _ 
                      "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                                accessPath & ";Persist Security Info=True;")
accessDB.Open()

Dim accessCommand As OleDb.OleDbCommand = accessDB.CreateCommand
Dim accessDataAdapter As New OleDb.OleDbDataAdapter( _
                                   "SELECT * FROM " & tableName, accessDB)
Dim accessCommandBuilder As New OleDb.OleDbCommandBuilder(accessDataAdapter)

Dim accessDataTable As New DataTable
accessDataTable.Load(_Reader, System.Data.LoadOption.Upsert)

//This command is what takes 99% of the runtime; loops through each row …
Run Code Online (Sandbox Code Playgroud)

.net performance ado.net ms-access dao

7
推荐指数
1
解决办法
5112
查看次数

标签 统计

.net ×1

ado.net ×1

dao ×1

ms-access ×1

performance ×1