測試環境:
intel xeon 2.4g四核心 2.5g記憶體
server 2003 enterprise edition service pack 2
oracle9i enterprise edition 9.2.0.1.0
microsoft visual studio 2008
元件oracle提供的oracle.dataaccess.dll
建立測試表:
create table test
(test_id number(10, 0),
test_name varchar2(50),
test_time timestamp,
test_value number(10, 3)
);
連線oracle過程略。
乙個測試用的類:
先來個拼sql入庫:
public static void ******insert(int32 total)
, '', to_date('','yyyy-mm-dd hh24:mi:ss'), )", (int32)i, util.genstring(5), currentstr, new decimal(util.gendouble()));
oraclecommand oracmd = new oraclecommand(sqlstr, oraconn);
oracmd.executenonquery();
}datetime end = datetime.now;
console.writeline("count: time:", total, (end - begin).totalmilliseconds);
oraconn.close();
}}
測試結果:
[i]count:10240 time:21828.125
count:10240 time:21890.625
count:10240 time:23234.375
count:10240 time:30468.75
count:10240 time:22734.375
count:10240 time:22484.375
count:10240 time:22593.75
count:10240 time:24203.125
count:10240 time:22546.875
count:10240 time:22375[/i]
總結:平均入庫速度每1萬條22.89秒
繫結引數法入庫:
public static void traditionalinsert(int32 total)
transaction.commit();
datetime end = datetime.now;
console.writeline("count: time:", total, (end - begin).totalmilliseconds);
oraconn.close();
}}
測試結果:
[i]count:30720 time:31609.375
count:30720 time:31875
count:30720 time:31687.5
count:30720 time:31187.5
count:30720 time:30906.25
count:30720 time:31078.125
count:30720 time:30781.25
count:30720 time:31062.5
count:30720 time:31375
count:30720 time:32125[/i]
總結:平均入庫速度每1萬條10.21秒
陣列繫結法入庫:
public static void arraybindinsert(int32 total)
oraclecommand oracmd = new oraclecommand("insert into test (test_id, test_name, test_time, test_value) values (:t_id, :t_name, :t_time, :t_value)", oraconn);
oracmd.arraybindcount = smallcout;
oracleparameter pid = new oracleparameter("t_id", oracledbtype.decimal);
pid.direction = parameterdirection.input;
pid.value = tid;
oracmd.parameters.add(pid);
oracleparameter pname = new oracleparameter("t_name", oracledbtype.varchar2);
pname.direction = parameterdirection.input;
pname.value = tname;
oracmd.parameters.add(pname);
oracleparameter ptime = new oracleparameter("t_time", oracledbtype.timestamp);
ptime.direction = parameterdirection.input;
ptime.value = ttime;
oracmd.parameters.add(ptime);
oracleparameter pvalue = new oracleparameter("t_value", oracledbtype.decimal);
pvalue.direction = parameterdirection.input;
pvalue.value = tvalue;
oracmd.parameters.add(pvalue);
oracmd.executenonquery();
}datetime end = datetime.now;
console.writeline("count: time:", total, (end - begin).totalmilliseconds);
oraconn.close();
}}
測試結果:
[i]count:1024000 time:26781.25
count:1024000 time:24203.125
count:1024000 time:24375
count:1024000 time:26484.375
count:1024000 time:24250
count:1024000 time:29812.5
count:1024000 time:26640.625
count:1024000 time:28437.5
count:1024000 time:31156.25
count:1024000 time:28203.125[/i]
總結:平均入庫速度每100萬條26.40秒
陣列繫結法的注意事項:陣列長度最好要小於65535,否則……
Oracle入庫速度測試 Python版
測試環境 intel xeon 2.4g四核心 2.5g記憶體 server 2003 enterprise edition service pack 2 oracle9i enterprise edition 9.2.0.1.0 python 2.5.2 元件cx oracle 4.3.1 win...
GDAL 2 0版本RPC校正速度測試
gdal2.0版本的更新日誌中提到了對rpc校正的優化,今天測試了一下,發現提公升的速度還是蠻快的,測試的資料是乙個irs p5的資料。首先使用乙個執行緒進行測試,使用下面的批處理進行執行,將opencl禁用,測試結果見圖1.圖中黃色的部分為處理時間,可以看出2.0版本同樣的資料大約處理時間提公升了...
C 用Stopwatch類進行速度測試
軟體的執行速度必須要在使用者可以接受的範圍內。通常,改善那些短暫的但頻繁使用的例程的速度會大幅度地提高軟體的整體速度。要改善速度,當然首先要能夠量度時間。好,那我們考慮一下在跑道上的情況,槍聲一響,馬上按下秒錶開始計時,在選手到達終點那一刻結束計時,這時就可以知 道該選手所用的時間了。要開始對下一輪...