六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

以編程方式使用批語(yǔ)句節(jié)省 數(shù)據(jù)庫(kù)IO來(lái)提高性能

[摘要]大家都知道在程序中盡量少和數(shù)據(jù)庫(kù)交互是可以 提高程序性能的,以下舉一個(gè)比較常見的例子如:需要根據(jù) 某條件判斷條記錄是否存在 如果不存在就 插入的這種操作。一般都會(huì)用 2 次數(shù)據(jù)庫(kù)io , 1次取 Count 如果=0 就 INSERT INTO 其實(shí)在 Oracle, 或 SQL Service等...

    大家都知道在程序中盡量少和數(shù)據(jù)庫(kù)交互是可以 提高程序性能的,以下舉一個(gè)比較常見的例子

如:需要根據(jù) 某條件判斷條記錄是否存在 如果不存在就 插入的這種操作。

一般都會(huì)用 2 次數(shù)據(jù)庫(kù)io , 1次取 Count 如果=0 就 INSERT INTO 其實(shí)在 Oracle, 或 SQL Service

等大型數(shù)據(jù)庫(kù)中可以使用批 SQL 語(yǔ)句節(jié)省數(shù)據(jù)庫(kù) IO(和數(shù)據(jù)庫(kù)的交互).

以下例子是一個(gè)簡(jiǎn)單的的演示執(zhí)行一次數(shù)據(jù)庫(kù) io(演示使用C# + Oracle數(shù)據(jù)庫(kù)演示,其他語(yǔ)言或 SQLService 也差不多),

適合使用在寫存儲(chǔ)過程沒太大意義的時(shí)候。

 

測(cè)試代碼如下:(注意,測(cè)試用的SQL語(yǔ)句中注釋過多會(huì)影響性能,實(shí)際使用不用這么多注釋)

語(yǔ)句比較簡(jiǎn)單,所以沒有把表結(jié)構(gòu)貼出來(lái),數(shù)據(jù)庫(kù)連接部分省略。

              //使用批 SQL 執(zhí)行(但不能換行和回車 \r\n 不行 \n 可以)

              //C# 可以用 @ 可以直接換行,VB 寫這樣的比較郁悶所以用C# 作演示

              const string ExecSQl=

@"Declare

     var_bbsitemid VARCHAR2(12) :=:IpBbsitemid ;/*傳入?yún)?shù)*/

     var_userid VARCHAR2(20) := :IpUserid ;/*傳入?yún)?shù)*/

     var_counts NUMBER(10);

BEGIN

     /*根據(jù)條件取記錄條數(shù)*/

     SELECT COUNT(t.bbsitemid) INTO var_counts

     FROM ST_BBSMRKTRSLTCHK t

     WHERE t.userid = var_userid AND t.bbsitemid = var_bbsitemid;

 

     /* Oracle 打印不知道怎么看 nnd */

     Dbms_Output.put_line('Count:' var_counts);

 

     /*如果是0條就插入*/

     IF var_counts = 0 THEN

         INSERT INTO ST_BBSMRKTRSLTCHK(BBSITEMID, USERID, READFLG, LASTMODIFIED)

              VALUES (var_bbsitemid, var_userid, 0, SYSDATE);

     END IF;

 

END;" ;

              //auto --commit;

              //必須把\r (換行符)去掉 否則 Oracle 不認(rèn)而且會(huì)報(bào)錯(cuò)。

              this.cmd.CommandText = ExecSQl.Replace("\r",string.Empty);

              cmd.Parameters.Clear();

              OracleParameter Par;

              //傳參數(shù)

              Par = cmd.Parameters.Add(":IpBbsitemid",OracleType.VarChar);

              Par.Value="0012";

                  

              Par = cmd.Parameters.Add(":IpUserid",OracleType.VarChar);

              Par.Value="DEF";

 

              try

              {

                   //如果執(zhí)行批每次返回都是1 如果想得到真正的更新條數(shù)就要用Out的 OracleParameter 了


                   int returnVar = cmd.ExecuteNonQuery();                 
                

                   MessageBox.Show("執(zhí)行成功");


              }

              catch(Exception ex)

              {

                   MessageBox.Show(ex.ToString());

              }
                  
             }




主站蜘蛛池模板: 在线国产日韩 | 中文字幕第315页 | 五月婷婷色丁香 | 午夜视频在线播放 | 色偷偷91综合久久噜噜app | 三级国产 | 日韩经典欧美精品一区 | 日韩视频在线精品视频免费观看 | 亚洲福利一区二区 | 小草社区在线观看播放 | 亚洲国产欧美在线 | 亚洲香蕉综合在人在线视看 | 日本mv精品中文字幕 | 亚洲热播| 午夜久久久 | 青青草原国产在线观看 | 天天色综合4 | 色综合久久久 | 午夜影院在线视频 | 日韩成人黄色 | 欧美一级淫片免费播放口 | 亚洲zscs综合网站 | 亚洲欧美v视色一区二区 | 中文字幕色在线 | 四虎在线观看 | 日本wwwxxx| 欧洲亚洲综合一区二区三区 | 天天爱天天插 | 日本亚洲最大的色成网站www | 日本视频在线免费观看 | 亚洲精品欧美精品国产精品 | 天天综合天天看夜夜添狠狠玩 | 中文字幕在线视频免费观看 | 亚洲男人的天堂久久香蕉 | 亚州免费视频 | 欧美做a一级视频免费观看 欧美坐爱视频 | 日韩不卡手机视频在线观看 | 午夜看片影院在线观看 | 色噜噜综合网 | 欧美视频在线观看xxxx | 在线看片亚洲 |