MIT’s blog

個人的なメモかな

接続文字毎の結果

取敢えず、何も指定しないデータベースのパスのみだと

2022/04/28 10:23:07 出走別着度数(2,445) [2022/03] >> Done! ...79.2959801秒
2022/04/28 10:24:26 出走別着度数(1,276) [2022/03] >> Done! ...41.2450401秒

PRAGMA TEMP_STORE = MEMORY;

2022/04/28 10:29:22 出走別着度数(2,445) [2022/03] >> Done! ...80.8131174秒
2022/04/28 10:30:42 出走別着度数(1,276) [2022/03] >> Done! ...41.9937788秒

PRAGMA JOURNAL_MODE = WAL;

2022/04/28 10:34:43 出走別着度数(2,445) [2022/03] >> Done! ...80.604067秒
2022/04/28 10:36:03 出走別着度数(1,276) [2022/03] >> Done! ...41.9658116秒

PRAGMA JOURNAL_MODE = OFF;

SQLite error (5): statement aborts at 1: [PRAGMA JOURNAL_MODE = OFF;] database is locked

PRAGMA JOURNAL_MODE = MEMORY;

SQLite error (5): statement aborts at 1: [PRAGMA JOURNAL_MODE = MEMORY;] database is locked

PRAGMA SYNCHRONOUS = OFF;

2022/04/28 10:46:05 出走別着度数(2,445) [2022/03] >> Done! ...81.065699秒
2022/04/28 10:47:26 出走別着度数(1,276) [2022/03] >> Done! ...42.1620051秒

PRAGMA LOCKING_MODE = EXCLUSIVE;

例外として

ちと、JOURNAL_MODE = OFF | MEMORY の場合はVisual Studioの出力タグに延々と上のメッセージが出るので強制終了させてるんですが、これは例外で止まる。しかも、随分と待たされた後にトランザクション開始で起きる^^;

PRAGMA MMAP_SIZE = 30000000000;

2022/04/28 11:01:39 出走別着度数(2,445) [2022/03] >> Done! ...78.8158052秒
2022/04/28 11:02:58 出走別着度数(1,276) [2022/03] >> Done! ...41.0700406秒

PRAGMA CACHE_SIZE = 500;

2022/04/28 11:15:15 出走別着度数(2,445) [2022/03] >> Done! ...80.738003秒
2022/04/28 11:16:36 出走別着度数(1,276) [2022/03] >> Done! ...42.4018137秒

PRAGMA PAGE_SIZE = 32768;

2022/04/28 11:19:52 出走別着度数(2,445) [2022/03] >> Done! ...80.382808秒
2022/04/28 11:21:12 出走別着度数(1,276) [2022/03] >> Done! ...41.6193615秒

個別指定ではどれも誤差レベルなんだけど、MMAP_SIZEだけ若干って感じ。これらをどんな感じで組み合わせると良くなるのか、それともエラーにならないもの全てなのか、database is lockedを解消して効果絶大ってLOCKING_MODE辺りを入れれる様にしなきゃなのかGW使って調べるかなぁorz