2011-07-23 21 views
0

私はすべてのデータを挿入し、そこ に一つの共通の方法を使用してのいずれかの欠点をmethod.areをするSQL帖の配列を渡す必要があり、私のapplication.iで プロセスを更新するための次のメソッドを使用しています.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

は、動的SQLについては、このopinionated articleを参照してください。クエリがデータベースによってキャッシュされず、それぞれが解析される必要があるため、実際に多くのことが起こっているパフォーマンスについて特に質問します。しかし、実際の心配はセキュリティについてのはずです。ある点か他の点で間違っている/不完全なことをするのはとても簡単ですし、どこかに混乱しているかどうかをテストすることはさらに困難です。

関連する問題