汎用データ取込機能のコード実装がやっと終わりましたよ・・。
まぁ、めんどくさかったですわ。
来週から単体テストに入るんだけど、軽く動かしてみたところ94件のデータの取り込みに15秒かかってますわ・・。
遅すぎ・・・。
1秒で6件しかデータが入らないという計算ですわ。
仕様通りに実装するとこんな感じになりますよ。
アップロードしたExcelブック自体はファイルでなくオンメモリ状態。
そこから1行ずつ読みだして1カラムずつチェックして1行分のチェックに問題なければテーブルに書き出す感じになってますよ。
まぁチェック処理とテーブル書き出しが重い処理になるかとは思うんだけど、チェック処理かなぁ・・。
DBはPostgreSQLでテーブルへの書き出しはUpsertで実行してるのよね。
プライマリーキーで重複しなければInsert、重複があればUpdateになるのでそこまで遅くはならないような気がするのよね。
どこかしらチューニングしないとこのままでは使い物にならんですわ。
トランザクション内でこの辺りのチェック処理をやってるのもちと問題かなと。
SQL文を作り置きしておいて、問題なければトランザクション内で一気にSQLを発行するようにした方がいいかもな。
単体テストしつつ再度コードを確認・改修せんといかんかな。
さて、とりあえずコード実装終わったことだし帰りますよ。
18時半まで残業して終了。
明日は親父の一周忌になります。
やっと髪が切れますわ。
現状肩より長くなってるのでな。
ふ☁
0 件のコメント:
コメントを投稿