리소스 제한 장치 인 Unitech PA690에서 Windows Mobile 6.5 용 응용 프로그램을 작성하고 SQL Server Compact Edition 데이터베이스에 레코드를 삽입 할 때 속도 문제가 있습니다 ... 누구든지 컴팩트 데이터베이스에 값을 삽입하는 가장 빠르고 가장 빠른 방법을 알고 있습니까?C#, SQL Server Compact - 레코드 삽입 속도 최적화
private void button1_Click(object sender, EventArgs e)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
string conn = "Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + "\\AppDatabase1.sdf;Persist Security Info=False";
SqlCeConnection connection = new SqlCeConnection(conn);
connection.Open();
int z = 0;
string name = "stack";
string surname = "overflow";
progressBar1.Maximum = 2000;
while (z<2000)
{
try
{
SqlCeCommand cmd = new SqlCeCommand("Insert into test (id,name,surname) values (@id, @name, @surname)", connection);
cmd.Parameters.AddWithValue("@id", z);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@surname", surname);
cmd.CommandType = System.Data.CommandType.Text;
cmd.ExecuteNonQuery();
z++;
progressBar1.Value = z;
}
catch (SqlCeException)
{
MessageBox.Show("!!!","exception");
}
finally
{
}
}
stopwatch.Stop();
MessageBox.Show("Time: {0}" + stopwatch.Elapsed);
connection.Close();
}
경과 시간은 다음과 같습니다 : 96 초 21 행/초의 삽입 속도를하게 여기에 직접 삽입을 사용하여 내 삽입 테스트 코드, i'am입니다. 누구든지 여기에 삽입 속도를 향상시키는 가장 좋은 방법을 알고 있습니까? 나는이 모바일 장치가 더 느리다는 것을 알고 있지만 삽입 속도는이 링크에 따라 초당 400 행 이상이어야한다고 생각합니다. SQL CE slow insert, 아니면 제가 잘못 됐습니까? 매우 자주 삽입 할 약 20 000 행의 파일이 있으므로 도움을주십시오 ... 고마워,
이 질문에 대한 답변이 있습니까? http://stackoverflow.com/questions/1606487/sqlbulkcopy-using-sql-ce – BlueMonkMN
거래는 어떨까요? 하나의 트랜잭션으로 처리가 완료되면 더 빠를 것입니다. var transaction = connection.BeginTransaction(); // while code transaction.Commit(); –
귀하의 링크에 대해 감사합니다 BlueMonkMN, 나는 귀하의 방법에서 약간의 속도 향상 있어요. 이제는 프로세서가있는 초당 29 행/초가 100 %로 증가했습니다 ... 블라디미르, 거래에 대해 더 구체적으로 설명해 주시겠습니까? 감사... –