私はSQLiteを使用してSQLiteデータベースに数万行のバルクを挿入するデスクトップアプリケーションに取り組んでいます。バルクインサートのパフォーマンスを最適化するのを助けてください。現在、60メガバイト分のデータをデータベースに挿入するのに最大50秒かかります。ORMを使用しています。(StackOverflowの人たちによって構築された)高速一括挿入Sqliteに、ネットではありますか?System.Data.Sqliteを使用してSQLiteに挿入しています。SQLiteの1つのバージョンは他のバージョンより優れていますか?現在、System.Data.SQLiteをhttp://sqlite.phxsoftware.comから使用しています。現在、私はそれらをより速くするためにトランザクション内にインサートをラッピングしています(これは良い改善をしました)。私は一度に1つのテーブルに17のテーブルに挿入しています。これを別のスレッドで並列化してこれを高速化できますか?現在のパフォーマンス。/秒)私はSQLiteが好きですが、少し速くしたいと思います。現在、XMLシリアル化を使用してオブジェクトをXMLファイルに保存することは、SQLiteデータベースに保存するよりも高速です。私の上司は質問しています。Merge受け入れられた回答だから、私は最終的に、.NETを使用してSQLiteで高性能の一括挿入を行う方法を見つけました。このトリックはインサートのパフォーマンスを4.1倍向上させました!私の合計保存時間は27秒から6.6秒になりました。SQLiteに一括して挿入する最も速い方法について説明します。キーは同じパラメーターオブジェクトを再利用していますが、挿入するレコードごとに異なる値を割り当てています。.NETがすべてのDbParameterオブジェクトを構築するのにかかる時間は、実際に加算されます。300万個のパラメータオブジェクトを作成する必要があります。その代わりに、30個のパラメータオブジェクトを作成して再利用する方がはるかに高速です。}Dapperを使って大きなテーブルに挿入することはできませんでした。(私の小さなテーブルでは、私はまだDapperを使います)。私が見つけたいくつかの他の事柄に注意してください。私は同じデータベースにデータを挿入するために複数のスレッドを使用しようとしましたが、これは改善されませんでした。1.0.69から1.0.79にアップグレードされました。(私が見ることのできるパフォーマンスに違いはなかった)DbParameterにTypeを割り当てているわけではありませんが、どちらの方法でもパフォーマンスの差がないようです。読み込みに関しては、Dapperのパフォーマンスを改善できませんでした。現在、私はそれらをより速くするためにトランザクション内にインサートをラッピングしています(これは良い改善をしました)。私が一括挿入速度で目にした最大の利益は、挿入物を小さな塊に分割することでした。etcごとにどれほど変わるか、私は確信しています。私は私のテストの間にそれが1000ほど近いと信じていました。