連載
SQL緊急救命室
ここはとある街の総合病院。ここには通常の診療科のほかに,一風変わった診療科が存在する。何軒もの病院をたらいまわしにされた,手の施しようのないSQLや,今すぐに改善が必要なSQLが担ぎ込まれる救命室である。それがSQL緊急救命室,略してSER(SQL Emergency Room)。そう,ここは国内でも唯一のプログラミング専門外来である。
- 最終回 更新時合併症~冗長なサブクエリ,性能劣化,実装依存
- 更新における冗長なサブクエリ
- SET句は更新対象を制限しない
- WHERE句で更新対象を制限する
- SET句でウィンドウ関数を使えるか?
2012年5月29日[初出:WEB+DB PRESS Vol.67(2012年2月24日発売)]
- 第5回 時代錯誤症候群~進化し続けるSQLに取り残されるな!
- 繰り返されるサブクエリ
- 共通表式
- CASE式
- 言語の進化とエンジニアの進化
- 冗長さはコードをわかりにくくする
- 比較できるのは列だけではない
2012年3月29日[初出:WEB+DB PRESS Vol.66(2011年12月23日発売)]
- 第4回 スーパーソルジャー病~すべての問題をやみくもにコーディングで解くべからず
- SQLで解く方法
- モデル変更で解く方法
- 再び,SQLで解くなら
- モデル変更で解く方法
- 初級者よりも中級者がご用心
- データモデルを制す者はシステムを制す
- 戦術より戦略
2012年1月24日[初出:WEB+DB PRESS Vol.65(2011年10月24日発売)]
- 第3回 ループ依存症~手続き型の呪縛を打ち破れ!
- ループによる表現
- SQLでループを置き換えるには
- 奇妙なサンドイッチ
- 相関サブクエリによる更新
- ウィンドウ関数による更新
- 手続き型言語的な書き方~(ループ)を積極的に使う場合
- SQLのみで記述する場合
- トレードオフを考える
2011年11月25日[初出:WEB+DB PRESS Vol.64(2011年8月24日発売)]
- 第2回 冗長性症候群~条件分岐をUNIONで表現するなかれ
- UNIONで条件分岐するのは正しいか
- 集計における条件分岐
- UNIONで分岐させるのは簡単だが…
- 集約結果に対する分岐もSELECT句で
- 手続き型と宣言型
- 終わりに
2011年10月3日[初出:WEB+DB PRESS Vol.63(2011年6月24日発売)]
- 第1回 サブクエリ・パラノイア~副問い合わせ乱用による性能劣化を治療せよ!
- 相関サブクエリは解にならない
- なぜ自己結合はダメなのか~ディスクに触る者は不幸になる~
- 結合をなくせ!
- 長期的な視野を持て
- 行間比較でも結合は必要ない
- おわりに~困難は分割するな~
2011年7月25日[初出:WEB+DB PRESS Vol.62(2011年4月23日発売)]