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

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

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

    上一次文章中提及的試驗(yàn):

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

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

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

    另外,一些朋友對(duì)上次試驗(yàn)環(huán)境有些異議,認(rèn)為應(yīng)該對(duì)數(shù)據(jù)庫(kù)和服務(wù)器做優(yōu)化或設(shè)置,以體現(xiàn)試驗(yàn)最終的時(shí)間結(jié)果。這個(gè)固然會(huì)影響試驗(yàn)的時(shí)間結(jié)果,但考慮到在試驗(yàn)環(huán)境中,對(duì)數(shù)據(jù)庫(kù)優(yōu)化的標(biāo)準(zhǔn)與優(yōu)化程度不便統(tǒng)一與定量,試驗(yàn)結(jié)果也不易說(shuō)明其影響源,所以這次試驗(yàn)依然以標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)建庫(kù)后的配置為主,試驗(yàn)所在服務(wù)器硬件環(huán)境與上次試驗(yàn)保持一致。實(shí)驗(yàn)?zāi)康脑谟谕诰颉?duì)比宿主程序中的數(shù)據(jù)批量操作方法。

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

    好了正文開(kāi)始。

    ● 普通肉墊式

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

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

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();

//通過(guò)循環(huán)寫(xiě)入大量的數(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()

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

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

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

主站蜘蛛池模板: 万载县| 马龙县| 上栗县| 高碑店市| 洛南县| 建水县| 高要市| 通辽市| 泸溪县| 沙雅县| 阜新市| 林州市| 濮阳县| 芒康县| 屯昌县| 隆子县| 咸宁市| 阳信县| 咸丰县| 东兰县| 岑溪市| 汝阳县| 涿州市| 通渭县| 红原县| 平塘县| 西华县| 乐安县| 开远市| 东港市| 察雅县| 常山县| 资源县| 天水市| 庆云县| 沅江市| 内黄县| 贞丰县| 电白县| 大关县| 许昌县|