Oracle入庫速度測試 C 版

2021-09-12 05:22:01 字數 3667 閱讀 8874

測試環境:

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類進行速度測試

軟體的執行速度必須要在使用者可以接受的範圍內。通常,改善那些短暫的但頻繁使用的例程的速度會大幅度地提高軟體的整體速度。要改善速度,當然首先要能夠量度時間。好,那我們考慮一下在跑道上的情況,槍聲一響,馬上按下秒錶開始計時,在選手到達終點那一刻結束計時,這時就可以知 道該選手所用的時間了。要開始對下一輪...