雨のち曇り
Emacsの設定を変更して
emacsの文字化け問題に対処した。原因は、.emacs.d/init.elで文字コードを設定していたこと。初期設定ファイルで設定せず、素直に環境変数LANGに従えばよい。org-modeで日付を入力できなくて困っていたが、これでWindowsからもLinuxからも更新できるぜー
同僚のSQLを修正して
SQLを書くなら、EXISTSは何がなんでもマスターするべき。親子関係にあるテーブルの少なくともひとつの子が/すべての子が条件を満たすときに親を○○で更新するとかよくあると思う。EXISTSを使えない人は条件を満たす子をカウントしたりして読みにくいったらありゃしない。勉強せよ!!
例えばこういうふうに書き換えられる。
-- 古 update 親 set 結果 = 'OK' where キー in ( select キー from ( select 親.キー , sum(case 子.条件 when '満たす' then 1 end) as 条件を満たす子の数 from 親 join 子 on 親.キー = 子.キー group by 親.キー ) where 1 <= 条件を満たす子の数 )
-- 新 update 親 set 結果 = 'OK' where exists ( select 1 from 子 where 親.キー = 子.キー and 子.条件 = '満たす' )
どっちが読みやすいかは一目瞭然。上みたいなSQLを書く人が「400万件だからそんなに遅くならない」とか適当なことを言うから困る。実行計画は見たのか実行計画は。