もう、ほんとにやんなってくる。
伝言ゲームみたいな情報に踊らされて、 結局半日無駄にしたり。
頭使わない/調べない/手も動かさない人のために、 1から10まで全部やってあげて。
もう何屋なんだか全然わからない。 ゴミ箱じゃないんだからさ、、、。
なんて思ってたわけだけど、 そんな中で一日振り返ったら、相当勉強になってることに気がついた。
まず、怪情報に踊らされたことで、 性能が出ない場合の切り分け方法について 真剣に師匠と議論して、アプローチの仕方を考えた。 結局自分が実装するときにどうすればいいのかってことに結びつく。 困ったことがない人に、かゆいところにまで手が届く ソースコードは書けやしない。何事も経験です。
SQLのチューニングするのに ・INDEXやそのCOLUMN情報が記述されてるデータディクショナリのビューの参照方法。 ・CREATE INDEXするときの表領域の指定方法。 ・ANALYZEのやり方。 ・SQLにヒント句をつける方法。 ・演算子によるインデックスの効き方の違い。 ・Oracle Enterprise Managerを使って長時間かかるSQLが あと何分くらいで終わるか調べる方法。
SQLトレースを取ってなくて、Oracleのインスタンスをすぐに 再起動をすることが出来ない場合に、 ・AUTOTRACEをONにする方法。 ・実行計画の見方。 ・v$sessionやv$sessstatからの統計情報を取得する方法
そして何より、膨大な量のOracleのマニュアルの中から当たりをつけて 欲しい情報をみつける方法。 (こればっかりは経験がものを言うのかな、と。)
JavaのソースにSQLの実行前後にタイムスタンプ入れて、 INDEX入れた前/後にかかった時間を計測すりゃすぐだったかもしれないけど、 いい機会だし、SQLのパフォーマンスチューニングを1回整理しとこうと思ったから。
明日は何か発見があるでしょうか。
もっともっといろんなこと吸収したいです。 もうちょい頑張れば、永続化に関する苦手意識がなくなりそう。
もう4年目だけど。まだまだ勉強が必要みたいです。 したたかにやらなかやきゃなって。