パフォーマンス改善について具体的に書くか
設計者の癖でPL/SQLの処理がシリアルにしか動かなくなっていた
シリアルとは1つの処理が終わるまで別の同じPL/SQLの処理が止まった状態になるということだ
意味のないコードと発番処理で2重で処理が止まっていた
その意味がないソースコードを削除して発番処理にシーケンスを利用するようにした
難しいことはやっていない
いろいろあって私がパフォーマンス改善係になったので意味がないソースコードを削除した
パフォーマンス改善係といっても社内SEがパフォーマンスを改善してくれと私に依頼しただけだけど、わたし一人でやっていたので係だ
社内SEも意味がないコードを問題視していたけど他のエンジニアは削除しなかった
同設計者は不動産会社の会計システムにも意味のないソースコードを入れていたので、若い社内SEに切れ気味に削除されていた
自社をやめた時にシステムを受注した会社に勤めないかと言われたがやりたいことがあるので断った
今はやりたいことじゃなくてやりたくなくてもやらなければならないことになってnoteを使って今もやっている
社内SEに信頼されるまでもっと時間がかかるかともったけど改善してくれと依頼されるまで早かった
P社とO社でも同じコードが入っていたけどP社ではパフォーマンス改善を依頼されなかった
↓ここで書いたのを少し修正する
https://iodaru.blogspot.com/2021/03/javac-c-microsoft-sql-server.html
TABLE ACCESS FULLとループの中でSQLのセッションを1回ずつ張るは素人が陥りやすいバグだ
あえて言おう、バグであると
動くからといってそのままリリースするのはチェック機能が働いていない
あと、バッチ処理でストアドに配列を渡さないで、1件ずつSQLのセッションを張るも素人
SQLのシステム開発において、素人と玄人の違いはそんなものしかない
セッションではなくてリレーショナルデータベースならトランザクションな
パフォーマンス改善のあとの修正はSQLの実行計画をみてTABLE ACCESS FULLをなくしたり、請求処理のPL/SQLに配列渡しして1回のトランザクションで処理が終わるようにした
プログラマーとしてちゃんと仕事していなんだよ
コメント
コメントを投稿