LPICの試験、10年ぶりのC#の案件に体調不良も加わり
ブログを更新する時間がとれませんでした。

なので、今回はちょっと気になった記事をご紹介しようと思います。


上記は、クラック対策を学ぶ学校が運営しているサイトで
そこからログインIDとパスワードが盗まれ、DBデータが破壊された
顛末をこと細かに解説しているページです。

セキュリティを教える学校でクラックされるとは、痛恨の極みでしょう。
ですが、侵入方法の検証や解析などよくまとまって解説され
そこは流石といえます。


クラック被害は、ECサイト構築案件に関わることの多い私としても
他人事ではなく、身につまされる思いです。よろしければ一読を。

フロギストンというのは「燃素」という意味です。
かつて、化学の世界では物が燃えるのは、燃焼物に燃素が入っているからだと考えられていました。
木や紙を燃やすと質量が減ります。木や紙の中に燃素が含まれ、火をつけてそれが消費された結果、
質量が減ると考えたそうです。

実際は、木や紙の中の炭素が空気中の酸素と結合し二酸化炭素として排出されたため質量が減ったので
考え方自体は間違っていないのですが、銅などの金属を燃やした時に
逆に質量が増える(銅+酸素=酸化銅)ことの説明ができないことや、
ラボアジェが酸素を発見したことによって、フロギストンという考えは否定されていきました。

さて、この業界ではよく「プロジェクトで炎上」という言葉が出てきます。検索してみると
「納期が迫っているものの、システムを納品する目処が立たず、
SEやプログラマが徹夜も厭わず過酷な状況で働き続けなくてはならない状態」
とあります。概ね間違ってはいないでしょう。

では、なぜ「炎上」するのか?

それは、プロジェクトの中に「燃素」が存在するためではないか?

では、その「燃素」とは?

このブログでは、プロジェクトの「燃素」を明らかにすることを主な目的としています。
炎上の原因となる燃素を見つけ出し、それを排除することで
無事にプロジェクトが完遂できる手伝いが少しでもできれば幸いです。

ちょっと複雑なSQLを作ったなら、なるべく早く実行計画を取得し、そのSQLが
トランザクションテーブルをフルアクセスしていないかやたら大きなコストがかかっていないかを確認しましょう。

早くて設計段階、遅くとも製造段階で取得するのが理想です。

設計者や製造者が一つ一つ確認しなくとも、スロークエリログの解析ツール(※)を使えばよいという
意見もありますが、これが使えるようになるのは製造が落ち着いたシステムテスト以降が多いです。

その段階で問題のあるSQLが見つかった場合、インデックスの作成だけで改善できるなら問題ありません。
SQLの変更ならば、多少のテストは必要でしょうが、概ねこれも問題なく対処できるでしょう。
ですが、テーブル構造の変更など、根本的な設計の変更が必要になればプロジェクト的に致命傷になりかねません。

それを避けるためにも、なるべく早い段階で問題のあるSQLを見つける必要が出てきます。
多くの場合、機能要件にばかり目がいき、処理速度のような非機能要件を見落としがちです。
SQLを作成したら、とりあえず実行計画をとってみる。そんな習慣をつけるようにしましょう。

(※)平均実行時間の長いSQLを順番に表示してくれるツール。Oracleでは「Statspack」、MySQLでは「mysqldumpslow」など

↑このページのトップヘ