人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

こんにちは。
RedHatLinux+PostgreSQLを使ったWebシステムをある会社に開発してもらったのですが、
検索のパフォーマンスがとても悪く問題になっています。

まずは、システムのどの部分がボトルネックになっているかを調査したいのですが、どのような
ソフト、またはコマンドを使って調査すればよいのでしょうか?

それと、ボトルネックになっている部分をどのように改善するかを教えていただけますでしょうか。

また、開発してもらったソースは公開されておらず、オブジェクトでの提供になっており
SQL文が分かりません。

実行されたSQL文を解析する方法はありますでしょうか?

よろしくお願いいたします。

●質問者: inu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:postgreSQL SQL Web いるか こんにちは
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kick_m
●27ポイント

常識的にはwebサーバーのログとか、システムログとかでしょうが。

どっちにしsqlを使ったものだと、サーバーの性能にもよりますが、そんなに早くは表示されませんよ。やや遅いのは普通だと思います。データーの量にもよるでしょうし。

ベンチマークツール

http://www.atmarkit.co.jp/fdb/rensai/postgresql/02/pgtune2-1.htm...


2 ● Km1967
●27ポイント

http://q.hatena.ne.jp/1268035527 の原因?


ボトルネックになっている部分をどのように改善するか

結論から言えば「ソースが公開されておらず修正できないという時点で改善は非常に難しい」だろう。

仮にSQLが悪いと判明したところで修正はどうする? ミドルウェア側が悪いとなったら作り直す? 何をしても対処できないのではないか?

さらに厳しい事を言うが「遅い」だけでは話にならない。テーブル構成と格納してあるデータの件数、そこからどのような条件で抜き出す際に、どの程度の時間を要しているかが判らないと、本当に遅いのか、そういうものなのかの判別もしようが無いし、公の場所に出せとも言えんから対処に困る。


経験則だが、よほど馬鹿げたSQLでもないかぎり多くの場合はミドルウェア側の原因がほとんどだったりする。

WEB出力用にTABLEタグで表にするだけでも下手な組み方をしているとバカみたいに時間を食う。開発言語すら書いていないがソースが見れないとなるとjavaででも書いてあるのだろうか?だとすればJVM周りのチューニングもいるのではないか?


余談はさておき、PostgrSQL にだけ話を集中することにするがパフォーマンスのほとんどはメモリ関係の設定によるものが大きい。デフォルトではその性能は発揮できない。その他もろもろの資料は非常に整っているが、ケースバイケースの部分が多く、端的に語るのはちと難しい。マニュアルから一例を下記にあげよう。

http://www.postgresql.jp/document/pg841doc/html/performance-tips...

http://www.postgresql.jp/document/pg841doc/html/monitoring.html

http://www.postgresql.jp/document/pg841doc/html/diskusage.html

http://www.postgresql.jp/document/pg841doc/html/wal.html

http://www.postgresql.jp/document/pg841doc/html/storage.html

http://www.postgresql.jp/document/pg841doc/html/planner-stats-de...


実行されたSQL文を解析する方法

postgresql.conf で log_min_duration_statement を設定して時間のかかっているSQLをログに吐き出させるのは悪い事ではないだろう。ただ、非常識なほど出力される可能性があるから、まずは 1000(単位はms)などから初めて徐々に数値を下げていけばいいだろう。

この方法で問題になるのは一回のセッション中に短いSQLが多数発行される場合への対処が難しいという事だ。どれだけのログが吐き出されるか判ったもんじゃないし、それをまとめるとなれば、最初の話に戻ってソースが判らないとという事に戻ってしまう。

http://www.postgresql.jp/document/pg841doc/html/runtime-config-l...


まぁ、あまり役には立たんと思うが、ひとまずこんなところか?


3 ● きゃづみぃ
●26ポイント

普通は チューニングというのを 行います。

http://php.y-110.net/wiki/index.php?PostgreSQL%A1%A7%A5%C1%A5%E5...

http://www.stackasterisk.jp/tech/dataBase/postgresTuning01_01.js...

もちろんチューニングの一部にSQLの改善もありますが、それは 開発側に依頼すべきですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ