色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

極限挑戰(zhàn)—C#+ODP 100萬條數(shù)據(jù)導入Oracle數(shù)據(jù)庫僅用不到1秒

    .NET程序中可以通過ODP調用特性,對Oracle數(shù)據(jù)庫進行操作,今天來講一下數(shù)據(jù)批量插入的功能,所用技術不高不深,相信很多朋友都接觸過,小弟班門弄斧了,呵呵。這篇文章是上篇文章的續(xù)集,因為上一次試驗的征集結果沒有突破4秒的方法,所以這次繼續(xù)挑戰(zhàn)與挖掘新方法,雖然是Oracle,但仍具有一定收藏意義。

    上一次文章中提及的試驗:

    極限挑戰(zhàn)—C#100萬條數(shù)據(jù)導入SQL SERVER數(shù)據(jù)庫僅用4秒 (附源碼)

    http://kb.cnblogs.com/page/73491/

    這個試驗是針對SQL SERVER數(shù)據(jù)庫的,宿主環(huán)境也是.NET,有興趣的朋友可以將這兩個試驗對比一下,為日后工作批量導數(shù)提供支持。

    另外,一些朋友對上次試驗環(huán)境有些異議,認為應該對數(shù)據(jù)庫和服務器做優(yōu)化或設置,以體現(xiàn)試驗最終的時間結果。這個固然會影響試驗的時間結果,但考慮到在試驗環(huán)境中,對數(shù)據(jù)庫優(yōu)化的標準與優(yōu)化程度不便統(tǒng)一與定量,試驗結果也不易說明其影響源,所以這次試驗依然以標準數(shù)據(jù)庫建庫后的配置為主,試驗所在服務器硬件環(huán)境與上次試驗保持一致。實驗目的在于挖掘、對比宿主程序中的數(shù)據(jù)批量操作方法。

    有新方法提升性能時間指標的朋友,歡迎互相切磋,互相提高,嘴上功夫就免了。。。

    好了正文開始。

    ● 普通肉墊式

    什么叫批量插入呢,就是一次性插入一批數(shù)據(jù),我們可以把這批數(shù)據(jù)理解為一個大的數(shù)組,而這些全部只通過一個SQL來實現(xiàn),而在傳統(tǒng)方式下,需要調用很多次的SQL才可以完成,這就是著名的“數(shù)組綁定”的功能。我們先來看一下傳統(tǒng)方式下,插入多行記錄的操作方式:

代碼
//設置一個數(shù)據(jù)庫的連接串, 

string connectStr = "User Id=scott;Password=tiger;Data Source=";

OracleConnection conn
= new OracleConnection(connectStr);

OracleCommand command
= new OracleCommand();

command.Connection
= conn;

conn.Open();

Stopwatch sw
= new Stopwatch();

sw.Start();

//通過循環(huán)寫入大量的數(shù)據(jù),這種方法顯然是肉墊

for (int i = 0; i < recc; i++)

{

string sql = "insert into dept values(" + i.ToString()

+ "," + i.ToString() + "," + i.ToString() + ")";

command.CommandText
= sql;

command.ExecuteNonQuery();

}

sw.Stop();

System.Diagnostics.Debug.WriteLine(
"普通插入:" + recc.ToString()

+ "所占時間:" + sw.ElapsedMilliseconds.ToString());

it知識庫極限挑戰(zhàn)—C#+ODP 100萬條數(shù)據(jù)導入Oracle數(shù)據(jù)庫僅用不到1秒,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 渑池县| 浮梁县| 衡阳县| 沭阳县| 通州市| 阜康市| 荥阳市| 平远县| 自治县| 安义县| 剑阁县| 麻阳| 克山县| 阜宁县| 富民县| 潞城市| 东方市| 罗甸县| 叙永县| 晴隆县| 芷江| 忻州市| 资溪县| 边坝县| 金乡县| 清水县| 平利县| 柳河县| 双辽市| 大悟县| 尤溪县| 顺义区| 洛扎县| 兴义市| 丰台区| 铜川市| 舞阳县| 汝州市| 西城区| 绍兴市| 永德县|