1. 程式人生 > >記憶體資料庫fastdb的效能測試報告

記憶體資料庫fastdb的效能測試報告

【從我原來blog搬來的】

IBM AIX 伺服器上

<>利用SUBSQL介面手工進行測試

----------<Some test Data>-----------------------------------------

1.Record(int4,char const*)

dbDatabase db(dbDatabase::dbAllAccess, 16*1024); // 96Mb page pool

Insert 50000 records,elapsed time: 1 seconds

Insert 100000 records,elapsed time: 2 seconds

insert 1000000 records,elapsed time: 9 seconds

Insert 10000000 records,elapsed time: 120 seconds

dbDatabase db(dbDatabase::dbAllAccess, 160*1024); // 960Mb page pool

Insert 50000 records,elapsed time: 1 seconds

Insert 100000 records,elapsed time: 1 seconds

Insert 1000000 records,elapsed time: 8 seconds

Insert 10000000 records,elapsed time: 124 seconds

dbDatabase db(dbDatabase::dbAllAccess, 160*1024); // 960Mb page pool

db.setConcurrency(10);

Insert 10000000 records,elapsed time: 116 seconds

然後匯入資料(INFO_GSM, BILL_DATAUSER_SPECIAL_NUMBER)【來源於172.18.1.30資料庫】

Update 100000 records,elapsed time: 1 seconds

Update 1000000 records,elapsed time: 9 seconds

Query 1000000 records,elapsed time: 2 seconds

(多重查詢條件)

Query 10000000 records,elapsed time: 1 seconds(唯一值查詢條件)

以上初略的資料可以看出來(伺服器響應慢),其速度比普通磁碟資料庫是高出至少一個數量級的。

<>程式碼測試(效率上基本不存在問題,主要是安全效能測試)

自編程式碼測試:FTP::172.18.34.168//data0/ibas/jianguoh/fastdb/examples/FastdbTest.cpp

原始碼如右:

資料庫檔案:FTP::172.18.34.168//data0/ibas/jianguoh/fastdb/ FastdbTest.fdb

1、Complex and Large transaction processing

多次對於大規模的資料進行增,刪,查,改後進行事務處理,沒有發現異常。(跑的測試程式碼)(先查詢,然後更改,然後插入部分記錄,最後再有選擇地刪除部分資料)

2、Concurrent transaction’s Safe

Concurrent Threads can run safely in my lots of tests!(Update模式程序和大量ReadOnly模式執行緒(同一個程序)併發操作)

<>因為對於開原始碼測試我們沒有任何規範和流程,測試只能夠依靠測試者自己當時的想法和定義來測

附:

本來就很好的記憶體機制,再加上多種高效能的查詢優化技術,其效率應該是沒什麼問題了。

以下是一國外文獻上更翔實直觀的深度效率測試報告圖:(其中MS-SQL指的是磁碟資料庫