今回は備忘録的な日記
最近、仕事でもっぱらの問題はパフォーマンス問題。
3秒ルール、5秒ルールとか言われて、何かと画面のレスポンスのよさを突っ込まれます。
今、やってる仕事でも、パフォーマンスが出ない場面が幾度か見られて色々手を打ってます。
遅いといわれて、論理的に解るようにするタメの対策…
やはり、遅い要素はDB周りの問題がほとんど。
確かに、非効率な処理をやってるとこもありますが、ほとんどがSQLの書き方一つで変わる。
まず、INDEXが正しく張れているか。
張ったINDEXが正しく使われているのか、実行計画を使って確認する。
FULL SCANになっている項目があるなら、そこがなぜそうなるのか考える。
どうしても使ってくれないなら、ヒント句で無理やり使わせてみる。
マテリアライズドビューを上手く使うのも手(うまく使わないと火を噴く)
INDEXも張れる。
PL/SQL全体で遅いなら、SQLトレースを使って悪いとこを探してみると良いかも。
SQLトレースは重いので、保守フェーズではSTATSPACKを使う。
一ヶ月分くらい取得、とりあえず、1時間に一回ずつ取得することにする。
今日思ったこと以上。