何とかしろよ」それは無理な注文だった。(さっき、システムがダメだったら手入力で何とかすると言ったのはどこのどいつだ!?)そう悪態を吐きたくなったが、目の前のオロオロする顧客を見て雄一は何とか出来ないかと考えた。(そうだ!)福島課長には止められているが、ここはやはり桜子に頼るしかない。思った雄一は彼女に電話を掛けた。もしもし>「有馬です。今、大丈夫ですか?」<うん。雄一は彼女が何かを言い返す間も与えないくらいの速さで、今の状況を一気に説明した。これなら答えざるを得ないだろう。昔の血がざわついたんじゃないかい?だが、電話の向こうの凄腕エンジニアである彼女は黙ったままだ。(どうした!?)ややあって、こんな答えが返って来た。インデックスラベルも買って来てね>そこで電話は一方的に切られた。雄一はスマホを握りしめ、呻った。彼女がいればこんな障害一発で解消出来るのに。自分で考えろ!」------------------------------------------------------------------------セントライト化粧品の時もそうだった。彼女は最低限のヒントだけを与えて、後は雄一にどうするか考えさせていた。今回もきっとそうなんじゃないか。(インデックスラベル......)さっきの電話で彼女が放った単語はこれだけだ。インデックスとは、ORACLEのオブジェクトの一つだ。テーブルに対して特定の列にインデックスを張ることで、検索速度の向上を図ことが出来る。インデックスが必要なのか。目次の無い本を想像すればその必要性が分かる。目次が無ければ、探したい項目を一ページ目から探さないと行けない。目次があればそこから一発で探したい項目のページが分かる。データベースの場合、目次の役割をインデックスが担っている。商品マスタテーブルには、商品コードをキーにしたインデックスが張られていたはずだ。インデックスもデータブロックに格納された一種のデータだ。さっきのSQLは商品コードをキーに商品マスタテーブルから該当データを引き当てるものだ。(もしかして、インデックスの方が壊れていて、テーブルデータにアクセス出来ないだけなのでは!?)そう思った雄一は、インデックスの再作成を行った。その後、先程と同じSQLを実行したところデータはエラー無く検索出来た。担当者は返事をすると、サーバ室から出ていった。数分後、戻って来てこう言った。「検索できました!」やはりそうだったかと雄一は思った。検索する時にインデックスが存在するデータブロックを参照し、そこから検索対象のデータが存在するアドレスを取得する。インデックスが存在するデータブロックが破損していた。「ORA-01578」を返し検索出来なかったのだ。そこで、インデックスを削除し再作成を行った。再作成することで、別の正常なデータブロックにインデックスは作られた。これで検索が可能になった訳だ。(だが......根本的な解決じゃないな)今回はインデックスだから良かったが、これがテーブルデータだったらと思うとゾッとする。破損していたブロックに存在したデータは諦めるしかない。その辺りを強調して笠松部長に説明した。いうことが起きるということはもうシステムのサーバやディスクは限界に来ているのですよ」さすがに笠松部長は考え込んだ。