.net中利用oracle產品內建的資料訪問組件(Oracle.DataAccess.dll)提升批次更新操作的執行效率

來源:互聯網
上載者:User
//動態連結程式庫路徑
$Oracle安裝路徑$/bin/Oracle.DataAccess.dll
//命名空間引用
using Oracle.DataAccess.Client;
//編碼過程概略
int rowsCount = 10;//此處假定需要對10條記錄進行刪除操作
Oracle.DataAccess.Client.OracleConnection connection = new Oracle.DataAccess.Client.OracleConnection("connection string here");
connection.Open(); 
Oracle.DataAccess.Client.OracleTransaction trans = connection.BeginTransaction();
Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand("delete from sample where id =:V_ID");
Oracle.DataAccess.Client.OracleParameter[] parameters = new Oracle.DataAccess.Client.OracleParameter[1];
//此處省略對parameters[0]的初始化和型別宣告操作
cmd.Connection = connection;
cmd.ArrayBindCount = rowsCount;
for(int i = 0;i < parameters.Length; i++)
{
          parms[i].Value = new object[]{1,2,3,4,5,6,7,8,9,10};//此處可完成對涉及的所有參數進行批量賦值
}
foreach(Oracle.DataAccess.Client.OracleParameter param in  parameters)
{
          cmd.Parameters.Add(param);
}
cmd.ExecuteNonQuery();
trans.Commit(); 
connection.Close();
//效能最佳化說明
此種方式利用同一參數的批量賦值模式,充分利用了資料庫產品提供的高效參數緩衝機制,從而減少了語句解析時間(使用System.Data.OracleClient模式,每次執行都需要重新解析攜帶相同參數的查詢語句),最終在大批量資料更新時表現出更好的執行效率和執行效能.
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.