SQLite에는 데이터를 대량 삽입하는 특별한 방법이 없습니다.
데이터를 삽입하거나 업데이트할 때 최적의 성능을 얻으려면 다음을 수행해야 합니다.
- 트랜잭션을 사용하세요.
- 데이터베이스에 연결하는 횟수를 줄이세요.(Command를 하나만 생성하여 재사용)
- 동일한 매개 변수를 사용하여 명령을 다시 사용하세요.
데이터를 삽입하거나 업데이트할 때 최적의 성능을 얻으려면 다음을 수행해야 합니다.
- 트랜잭션을 사용하세요.
- 데이터베이스에 연결하는 횟수를 줄이세요.(Command를 하나만 생성하여 재사용)
- 동일한 매개 변수를 사용하여 명령을 다시 사용하세요.
using (var transaction = connection.BeginTransaction())
{
var command = connection.CreateCommand();
command.CommandText =
@"
INSERT INTO Markup(UID, Color)
VALUES ($UID, $Color)
";
var paramUID = command.CreateParameter();
paramUID.ParameterName = "$UID";
var paramColor = command.CreateParameter();
paramColor.ParameterName = "$Color";
command.Parameters.Add(paramUID);
// Insert a lot of data
var random = new Random();
for (var i = 0; i < 1500000; i++)
{
paramUID.Value = random.Next();
paramColor.Value = "FFFFFF";
command.ExecuteNonQuery();
}
transaction.Commit();
}
단일 건마다 Command를 생성하여 쿼리를 실행하는 것보다 엄청난 성능 향상을 볼 수 있습니다.
댓글
댓글 쓰기