2011-07-23 52 views
0

我使用的所有數據插入和更新在我application.i 過程只需要那裏穿過SQL奎雷斯的陣列 的method.are使用一種常用的方法中的任何缺點,下面的方法.does 造成任何性能下降的應用使用常見的方法

public int ExecuteCommand(string[] sqls) 
     { 
      numberOfRecordsAffected = 0; 

      IngresConnection ingresConnection = new IngresConnection(ConnStr); 
      IngresTransaction ingresTransaction = null; 
      try 
      { 
       ingresConnection.Open(); 

       ingresTransaction = ingresConnection.BeginTransaction(); 

       foreach (string sql in sqls) 
       { 
        IngresCommand ingresCommand = new IngresCommand(sql, ingresConnection, ingresTransaction); 
        ingresCommand.CommandTimeout = 0; 
        numberOfRecordsAffected += ingresCommand.ExecuteNonQuery(); 
       } 

       ingresTransaction.Commit(); 

      } 
      catch 
      { 
       if (ingresTransaction != null) 
        ingresTransaction.Rollback(); 
       ingresConnection.Close(); 
       throw; 
      } 
      finally 
      { 
       if (ingresConnection != null) 
        ingresConnection.Close(); 
      } 

      return numberOfRecordsAffected; 
     } 

回答

1

看到這個opinionated article有關動態SQL。您特別詢問性能確實受到很大影響,因爲您的查詢不能被數據庫緩存,並且每個數據都需要被解析。真正的擔心應該是關於安全性。在一個點或另一個點上做錯誤/不完整是很容易的,而且測試它是否在某處出現混亂甚至更難。

相關問題