access的规格中虽然没有限制一张表的最大数据条数,但是限制了一个.mdb文件和一张表的大小不能超过2GB。所以,在只有一个.mdb文件的条件下,是不能对一张表进行无限插入的。
作为一款桌面型数据库,能够通过Microsoft Jet Database Engine访问,而且具有GUI,其在数据量较小的小型的桌面应用开发时用做数据存储还是很方便的。
在此对Access 2010数据库插入1 000 000条数据时的性能进行测试。
笔者通过Visual Stdio 2010编写了一个简单的桌面程序,开启独立子线程进行数据操作测试,每操作100次将当前时间记录在文件中。测试程序共开启14个线程,忽略其它线程消耗时间片和文件写入时间。测试期间CPU占用率在12%~13%。
测试数据条数:1 000 000
测试数据操作:INSERT UPDATE 基本操作
测试环境:windows 7 64-bit
Intel Core i7-2630QM 2.00GHz
RAM 4.00GB
测试结果
1.INSERT (插入四个域)
插入1 000 000条总共耗时1463s,平均每秒插入683.53条
0 2013/8/27 23:57:25 100 2013/8/27 23:57:25 200 2013/8/27 23:57:26 300 2013/8/27 23:57:26 ... 999700 2013/8/28 0:21:48 999800 2013/8/28 0:21:48 999900 2013/8/28 0:21:48
详细
0~11 000条 800条/s
11 000~93 800条 700条/s
93 800~781 200条 600条/s
781 200~1 000 000条 500条/s
由此可见在100 000条数据以内,access的性能是比较好的,超过后性能有所下降,但仍然比较稳定。
前93800加权平均后为711条/s,后906200加权平均后为576条/s,性能大约下降18.99%。
2.UPDATE (更新三个域)
更新1 000 000条总共耗时2966s,平均每秒更新337.15条
0 2013/8/28 17:28:14 100 2013/8/28 17:28:17 200 2013/8/28 17:28:18 300 2013/8/28 17:28:19 ... 999700 2013/8/28 18:17:40 999800 2013/8/28 18:17:40 999900 2013/8/28 18:17:40
详细
0~1 100次 100次/s
1 100~9 900次 200次/s
9 900~1 000 000次 300~400次/s
由此可见,随着连续查询次数的增加,,其性能逐渐增加并趋于稳定