gpt4 book ai didi

c# - 从 C# 读取 Access 2007 (accdb) 文件的性能真的很慢

转载 作者:太空狗 更新时间:2023-10-30 00:44:33 27 4
gpt4 key购买 nike

我正在使用 C# 在 Visual Studio 2008 上编写应用程序。该应用程序从 Access 文件中读取数据,然后生成一个 txt 文件。我正在使用一个包含 1.000.000 条记录和几乎 1GB 大小的 mdb 文件进行一些测试。代码是这样的,整个过程需要 8 到 10 分钟才能完成。

var connStr =  string.Format("Provider =Microsoft.Jet.OLEDB.4.0; Data Source={0};Persist Security Info=False", this.dbPath);

using (var conn = new OleDbConnection(connStr))
{
using (var command = conn.CreateCommand())
{

command.CommandText = "SELECT * from Registros r, FOIDS f where r.TICKET = f.TICKET";
command.CommandType = System.Data.CommandType.Text;
conn.Open();

int i = 0;
string ticket = string.Empty;

using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
i++;

if (!reader.IsDBNull(reader.GetOrdinal("r.TICKET")))
{
ticket=reader.GetString(reader.GetOrdinal("r.TICKET"));
// Some process
}
}
}
}
}
}

今天我收到了一个 accdb 文件 (Access 2007),所以我将我的连接字符串更改为这个文件:

connStr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=False", this.dbPath);

但在更改之后,读取新文件每条记录大约需要 4-5 秒!!!所以,我的整个过程需要很多天才能完成!我试过将 accdb 文件转换为旧的 mdb 文件,然后用以前的连接字符串再次读取,但问题仍然存在。我认为是数据库本身的问题,但我不知道该怎么办,在互联网上我没有找到任何关于此类问题的信息。

有什么想法吗?有什么建议吗?

最佳答案

根据我 5 年前的经验。

其中一个 Access 数据库超过 20000 条记录,大小约为 150 MB。它开始减速,性能直线下降。所以迁移到 SQL。

你可以考虑使用 SQL compact edition,或者 sql lite

谢谢

关于c# - 从 C# 读取 Access 2007 (accdb) 文件的性能真的很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com