データベースの初心者です。
今日も仕事で1日長いスクリプトを読んでいたので、反省を書いておきます。
1日かけて1つぐらいしか潰せなかったので、もっと効率よくできたと反省しています。
とりあえず読んでみる
ざっと見て、問題のありそうなところを洗い出します。
成果物として可視化できるようエクセルに書きましょう。
行数、推論、仮説程度はメモをしておきましょう。
nullや空白ないか? 変なサブクエリ書いてないか?
グループ化は適切か?
変更による不具合が出ている場合は、バージョン管理から変更前と変更後を落としてきます。
VisualStudioCordのcompare機能は役に立ちます。
書き換えてみる
問題のありそうなところを書き換えて、実行してみます。当たったらラッキー程度です。
データをよく見てみる
エクセルに貼ってフィルターで確認。
目視で確認。半角スペース' 'とか'文字列の後に空白 'とか、割と分かりやすいのがあるかもしれません。よく見ないとだめです。
データを追ってみる
たぶんデータベースはこれがいちばん大切です。
スクリプトを解体して、適当なSQL作って試すしかないです。
どこまで正しい値をとれていて、どこからバグっているのかを見極めましょう。
これだけで原因個所を特定できます。
ただレコードが何百万件もあると時間かかるので、適当にデータ絞ってやるのも必要です。
急ぎの時もあるので、時短のテクニックも覚える必要があります。
ひとつのスクリプトに三日ぐらいかけられる状況なら時間かけても構わないです。
上司の指示書を疑え
今日の指示書は、主語が省略されており、分かりづらかったです。
主語がどれなのかよく確認をする癖をつけたほうが、いい気がします。
上司も忙しくて意識朦朧としながら書いていることが多いもあると思いますので、自分が指示を補完するという姿勢は大切だと思われます。
反省は以上です。明日も頑張ります。