アプリを高速化するためのサポートが必要です。アプリケーションは、約53,000行の区切られたレコードを読み取り、各行を解析してから、各行をデータベースに送信して書き込みを行います。これまでのところ、私はデータベースの終わりを主要なボトルネックとして特定しました。これを調整するのを手伝っていただければ幸いです。現在、それぞれ190フィールドのすべてのレコード(53,000)を処理するのに約20分かかります。データベースにデータを送信するコードから始めて、その数を大幅に減らしたいと思います。
私はEnterpriseLibrary5を使用して、そこでの接続プールを利用しています)のようにデータベースに接続します
internal void SaveItem(String connString)
{
try
{
ImportDataAccessor dbacess = new ImportDataAccessor(connString);
foreach (ItemDetail item in itemEZdetails)
{
if (dbacess.SaveProduct(RecordID, item))
{
updatecounter++;
}
}
successfulsaves = dbacess.RowsProcessed;
updatecounter = dbacess.TotalRows;
}
catch (Exception ex)
{
throw ex;
}
}
public bool SaveProduct(String RecordUID, ItemDetail item)
{
//. . . . start function here
DbCommand insertCommand = db.GetStoredProcCommand("IDW_spEZViewRecordImport");
db.AddInParameter(insertCommand, "SessionUID", DbType.String, recordUID);
// the other 189 Parameters go here
int rowsAffected = db.ExecuteNonQuery(insertCommand);
// Object sreturnval = (String)db.GetParameterValue(insertCommand, "ReturnVal");
String returnval = String.Empty;
if ( ! (db.GetParameterValue(insertCommand, "ReturnVal") == DBNull.Value))
returnval = (String)db.GetParameterValue(insertCommand, "ReturnVal");
if (returnval == "60")
RowsProcessed++;
result = rowsAffected > 0;
}
//end of line add
私が今持っているコードでこれをどのように達成するのですか?前もって感謝します。