スポンサーリンク
パスワード・ボス Premium無期限版 3台用
スポンサーリンク
ベルメゾンネット

SQLiteのTempフォルダを変更する場合はプロセスの環境変数を変更する

C#

SQLiteが使用するTEMPフォルダは、OSのTEMP/TMP環境変数に設定されたフォルダを使用する為、OSのTEMP/TMPフォルダのドライブに空きが少ない状態で、大量データをSQLiteが処理すると、「System.Data.SQLite.SQLiteException:database or disk is full」エラーが発生する。

ドライブの空き容量の確保や、OSのTEMP/TMP環境変数のパス変更が難しい場合、アプリケーションの事情でSQLiteのTempフォルダを個別に指定したい場合は、アプリケーションのプロセス起動時にTEMP/TMP環境変数のパスを変更することで、SQLiteが使用するTEMPフォルダを変更することができる。

SQLiteが使用する環境変数は幾つかあるので、プロセス開始時にそれぞれ変更してしまうのが無難。下記はC#でプロセスの環境変数を変更する例。

※Windowsの場合はTMPとTEMPですが、UNIX系ではTMPDIRとSQLITE_TMPDIRを変更します。

SQLiteのtemp_store_directoryオプションで、SQLiteのTEMPフォルダの変更することもできますが、非推奨なのでプロセスの環境変数を変更する方が良いです。

SQLiteがTempフォルダに一時ファイルを作成している様子は、Process Monitor で監視すると分かり易い。

コメント

スポンサーリンク
JALショッピング
スポンサーリンク
明日を、もっと、ハッピーに!『ショップジャパン』
タイトルとURLをコピーしました