问题描述
目前我正在考虑替换的Microsoft Jet MDB数据库的使用在单用户通过SQLite数据库的.NET C#Windows窗体应用程序。
Currently I'm thinking about replacing the usage of Microsoft Jet MDB databases on a single-user .NET C# Windows Forms application by a SQlite database.
我的目标是降低像喷气驱动和一些严重错误的安装要求当喷气机的安装被损坏了(我们的客户飘飞报告这些错误)。
My goal is to lower installation requirements like the Jet drivers and some nasty errors when the Jet installation got corrupted (we have customers every now and then reporting those errors).
我的关于性能的问题是:
是否有任何性能基准测试出有一个相当小的数据集进行比较MDB和SQLite?
Are there any performance benchmarks out there comparing MDB and SQLite on a rather small sets of data?
或者有没有谁已经做了这一步,可以讲一些故事从自己的经验?任何开发
Or are there any developers who already did this step and can tell some stories from their own experiences?
(我使用Google目前都没有成功小时)的
更新
虽然数据库不包含的是的多条记录和表格,我想表现仍然是一个问题,因为数据是被访问经常。
Although the database does not contain that many records and tables, I think performance is still an issue, since the data is being accessed quite often.
中的应用是所谓的桌面CMS系统呈现的HTML页面;在渲染过程中,相当多的数据被访问和正在执行大量的SQL查询。
The application is a so called "Desktop CMS system" that renders HTML pages; during the rendering, quite a lot of data is being accessed and lots of SQL queries are being executed.
更新2
刚刚发现这表明一些速度比较,遗憾的是不与MDB,据我可以看到这个文档。
更新3
由于要求,一些数字:
- 约。 30数据库中的表。
- 在大多数表以低于100的记录方式。
- 约。 5表与一般几百至几千条记录。
- 在一个大的MDB文件将约为60 MB。
更新4
只是为了改写:我的没有的具有与当前MDB实现任何性能问题。我问这个问题,而不是使用MDB时的SQLite得到一种感觉的表现是否相等(或更好)。
Just to rephrase: I am not having any performance issues with the current MDB implementation. I am asking this question to get a feeling whether the performance would be equal (or better) when using SQLite instead of MDB.
推荐答案
如果你决定做自己的基准测试,我提出这个程序到您的Jet表导出为CSV文件。然后你可以将它们导入到您的SQLite数据库。
In case you decide to do your own benchmark testing, I offer this procedure to export your Jet tables to CSV files. Then you can import them into your SQLite database.
Public Sub DumpTablesAsCsv()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim strCsvFile As String
Dim strFolder As String
Dim strTable As String
strFolder = CurrentProject.Path & Chr(92)
Set db = CurrentDb
For Each tdf In db.TableDefs
strTable = tdf.Name
If Not (strTable Like "MSys*" Or strTable Like "~*") Then
strCsvFile = strFolder & strTable & ".csv"
DoCmd.TransferText acExportDelim, , strTable, _
strCsvFile, HasFieldNames:=True
End If
Next tdf
Set tdf = Nothing
Set db = Nothing
End Sub
这篇关于SQLite是如何比较快的Microsoft Access MDB?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!