私は1つのテキストファイルをアップロードしている1つのWindowsアプリケーションを開発しています。そのテキスト ファイルには、カンマ [,] で区切られたデータが存在する 5000 行があります。バックエンドでoledb接続[MS Access]を使用しています。ファイルからカンマ区切りのデータを取得し、データベースに挿入しています。
しかし、私が観察しているように、データは約 15000 ~ 16000 レコードです。挿入には、1 秒あたり約 7 レコード近くかかっています。
この速度を上げたい。
それは、バックエンドでデータベースとして使用するものに依存しますか?
SQL Server 2005 は MS Access の代わりに速度を上げることができますか?
これを手伝ってください。
コードを参照してください:
string file = openFileDialog1.FileName;
StreamReader inputData = new StreamReader(file);
while ((line = inputData.ReadLine()) != null)
{
subLine = line.Split(',');
/*Taking Unique ID from tradefile table*/
int ID=0;
try
{
da=new OleDbDataAdapter("select max(ID) from tradeFile",con);
DataSet ds=new DataSet();
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (ds.Tables[0].Rows[i][0].ToString() == "")
{
}
else
{
ID = int.Parse(ds.Tables[0].Rows[i][0].ToString());
ID++;
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
string unknown="unknown Fileld";
con.Open();
// int j=subLine.Length;
//for(int i=0;i<subLine.Length;i++)
{
int i = 0;
//int j=subLine.Length;
//int index=subLine.Length-j;
cmd=new OleDbCommand(
"insert into tradeFile values('"+ID+"','"+
subLine[i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
unknown+"')",con);
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
//counter++;
}