忍者ブログ

MIT流なメモ

中央競馬の予想や購入したもののメモなどを書いて行こうかと。まあ、個人的なメモ的なブログです。

そのままでは激遅なSQLite

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

そのままでは激遅なSQLite

SQL Server Expressでのコードファーストからのデータ登録では滅茶苦茶遅いSQLiteでした。調べると直ぐに分かるのはトランザクションを明示的に使う事での時短。

 

Using db ...

    db.xxx.Add()

    db.SaveChanges()

End Using

 

って感じを全体的にひっくるめて

        Dim sqlBuilder As New SQLite.SQLiteConnectionStringBuilder()
        'Set the properties for the data source.
        sqlBuilder.DataSource = My.Settings.KSD_Data_Source
        sqlBuilder.JournalMode = SQLite.SQLiteJournalModeEnum.Persist
        sqlBuilder.SyncMode = SQLite.SynchronizationModes.Off

        Using con As New SQLite.SQLiteConnection(sqlBuilder.ToString())
            con.Open()
            Using tran As SQLite.SQLiteTransaction = con.BeginTransaction()
                Try
                    Using db As New KSD_DB

                    End Using
                    tran.Commit()
                Catch ex As Exception
                    tran.Rollback()
                End Try
            End Using
        End Using

に変更する必要があるっぽい。

 

2020.11.11 追記

上記の再内側で使っている

Using db as New KSD_DB

End Using

の部分はダメでした。多分このメソッド使うと既に自動でトランザクションとか諸々考慮されたものなのかもしれません。で、代わりにSQLiteCommandを使う方法でなければならない感じです。これってテーブルにカラムが多いと滅茶苦茶大変かと。今回テスト的に書いてみたコードは比較的カラム数が少ないテーブルでしたので昨晩チャチャっと書いておき、サーバメンテなんかの影響で今晩帰宅後に試しました。苦労した甲斐はありました。約4万件登録するのに2時間も掛かっていた処理が1分掛からずの45秒程度で完了とか^^ 嬉しかった。

 

が、その後Visual Studioがこのブログ書いている間に2回もハングしてるorz いや、別に単にソースを見ているだけの状態でハングとか、今迄経験なかったが、なんだろ? OS再起動して様子みるしかなさそうかも。

拍手[0回]

PR

コメント

カレンダー

01 2025/02 03
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

最新コメント

プロフィール

HN:
MIT
性別:
非公開

バーコード

ブログ内検索

コガネモチ

アクセス解析