1

現在、C# と System.Data.SQLite を使用して、Windows 8 アプリの SQLite データベースに大量のデータを追加しようとしています。リストにすべてのオブジェクト (MediaItem) があり、foreach ループを使用してそれぞれをデータベースに追加しています。残念ながら、これはかなり遅いので、速度を上げる方法があるかどうか疑問に思っています。たとえば、完全なリストをデータベースに渡すことはできますか? これまでの私のコードは次のとおりです。

List<MediaItem> items;

// adding lots of onbjects to the list...

using (var db = new SQLiteConnection(dbPath))
{
     foreach (var item in items)
     {
         db.Insert(item);
     }
 }
4

1 に答える 1

7

私の経験から、できるだけ多くのデータベース呼び出しをトランザクションにラップすると、処理がかなり高速になります。

using (var db = new SQLiteConnection(dbPath))
{
    db.RunInTransaction(() =>
    {
        foreach (var item in items)
        {
            db.Insert(item);
        }
    });
}
于 2013-03-27T23:56:43.523 に答える