RDBでカーソル使ってFETCH,UPDATEという開発手法が当たり前なの?
DB(Oracle)に対して更新する際はカーソルを使ってFETCH,UPDATEを使わなくちゃいけない,という開発規則があるプロジェクトに参画している.まあ,開発者の大方の予想どおり性能が出なかった.この開発規則,某メーカの開発手法なんだそうだ.
サブシステム毎の開発チームのリーダ(傭兵)が集まる進捗ミーティングの席上,某メーカのおじいさん(肩書きに○○部長とかつく奴)が「この開発手法に則って開発していれば性能が出ないわけが無い.プログラムのロジックに無駄があるんじゃないのか?」とぶち上げた.各リーダは内心「あいつバカなんじゃねえの.誰か教えてやれよ.」と思いながら首をひねる.
RDBでは,算数で習った「集合」の考え方でデータを扱う.だから,何万件ものデータの更新だろうが条件に合うデータをwhere句で括ってやってUPDATE文一発で更新できる.それをカーソル作って,ちまちまと1件ずつFETCHしてUPDATEしなければならないのだから,夜間のバッチ処理が朝になっても終わらない.それもDBサーバとバッチ処理を実行するバッチサーバは別立てだから,バッチサーバ上のCOBOLプログラムからOracle Net経由でDBにアクセスするというオーバーヘッドも追加される.夜間だけでなく,昼間も店舗のクライアントから更新処理を行うとタイムアウトで落ちてしまうありさま.
何しろ,その偉大なる開発手法においては,PL/SQLやストアドプロシージャ/ファンクションすら禁止なのだ.その理由も「そのメーカではPL/SQLやストアドは難しいので,(傭兵が抜けて)引き継いだ後のメンテができない」という馬鹿馬鹿しいもの.結局,処理を高速化するための工夫は一切排除された.Oracleをバリバリに使いたい人にとっては,手足をもがれたに等しい環境だ.
なんとなくね,システムの性能を殺しておいて,客に性能改善と称して高速なディスク装置を売りつけたいのではないか?と疑ってしまうのですけど.だって,ディスク装置一式買うと土地付き一戸建てが買えるような値段だしなあ.毎年の保守費(ハード価格の1割か2割だったか)だって相当な額だろうに.
« 「VOCALOID 2」日本のアニソン・ジェネレーター(動画) : Gizmodo Japan(ギズモード・ジャパン) | トップページ | (株)すや 栗きんとん は一口目の濃厚な味わいが良かった »
「パソコン・インターネット」カテゴリの記事
- エプソンのインクジェットプリンタ用インクカートリッジ仕様変更(2023.05.29)
- ケーブルインターネットから光回線に移行しました(2023.07.16)
- バッファロー Wi-Fiルーター WSR-1800AX4S で「ra0 had deauthenticated: 00:1d:12:xx:xx:xx」のログが頻繁に記録される(2023.03.06)
- バッファロー Wi-Fiルーター WSR-1800AX4S でインターネット接続が不安定になったので対策しました(2023.01.09)
- 東芝 TransMemory U401 USBメモリ THN-U401S0640A4 購入しました(2022.09.01)
「仕事」カテゴリの記事
- KiPS PiTaPa 解約しました(2013.03.21)
- 窓の外を人が落ちていきました(2008.04.27)
- 東海道新幹線のEX-ICサービスでトラブルに巻き込まれた(2008.04.25)
- 今日はこのソースに騙された(2008.02.13)
- IT業界はやっぱり7Kなんだね(特に携帯開発とか)(2007.12.31)
« 「VOCALOID 2」日本のアニソン・ジェネレーター(動画) : Gizmodo Japan(ギズモード・ジャパン) | トップページ | (株)すや 栗きんとん は一口目の濃厚な味わいが良かった »