MIT’s blog

個人的なメモかな

滅茶苦茶遅いんだと

JRA-VAN掲示板でのやり取りで、14時間とかは問題外の遅さorz いや、別にスピードスターだとは思ってなかったけど、少し内容は違うかもだが、同じ事を30分で可能な事を14時間越えってのはねぇ。

 

まあ、手抜きコーディングなのは否めなくて、少し反省も含め、手を打つ事にしたのですが、これがまあ、非常に手間の掛かる作業ではありました。全テーブルへのデータ登録時の元データの処理を書き直しです。ここまでデータ提供先提供のモジュール利用して、手抜きしてたんですが、これ使わずに直にバイト配列から位置と長さ指定してデータベース登録データの指定する様に書き直す事にしました。この作業を先週夜勤明けに毎日こなして、ある程度デバッグも済ませてました。土曜日朝の夜勤明けに最後のデバックも済ませて、もう何度目かは全く把握してないフルセットアップを何とか日付変わった1時にスタートして寝ました。朝起き昼頃には終わるな~っと、昼頃の最後の段階見て愕然とした。いや、普通にバグが残ってたのは別にねぇ、自分が完璧じゃないのは驚く事ではないけど、14時間近くやった後にエラー見ると流石に辛い。

人間が作業すれば必ずヒューマンエラーがあるんですが、これが年齢的にも酷い^^; チェックしてるつもりも抜けてるなんてのは当たり前ですね。更に、今回はSQLite3の接続時の指定での効率アップも少し期待してます。ここまでは、そもそもコードファーストでEntity Framework使って楽にデータベース処理とはじめたのにコードファーストでのDBファイル作成は出来てますが、エンティティからの楽々データ登録はあまりの処理速度の遅さで採用断念し、現在のSQLを投げるものに変更する時にも膨大な時間とヒューマンエラーのデバック。コードファーストでのDB接続だったので、接続文字列なんかの知識も全く無い状態でしたので、

synchronous=off
journal mode=wal
locking_mode=exclusive
temp_store=memory
mmap_size=30000000000

を指定すると良いよってアドバイスを受けました。しかし、System.Data.SQLite.Coreでは上2つは指定方法が見つかりましたが、下3つは不明。2つ追加した状態で19時過ぎに再びフルセットアップ開始したので、明日中番の出勤前には結果が分かるかな~っと。

このPC、昨夜も夜通し動かしてましたが、今晩もこのまま行く予定です。頑張れ~!