07/07/23 に Kentarow Kobayashi さんは書きました:
小林健太郎と申します、よろしくお願いします。
opensuse-jaのMLなので、SLESのご質問をして良いか分からなかったの ですが、もし何か分かれば教えて頂ければと思います。 もし、急ぎだとか、仕事でということであれば、きちんとした サポートを受けて、そこにも(同じ平行的に)問い合わせを 行なった方が良いと思います。
以下のような状況です。
SUSE Linux Enterprise Server 10 SP1がインストールしてある 環境で、PostgreSQLを利用しています。PostgreSQLのバージョンは、 最初はパッケージから8.1.9をインストールしていましたが、 今回ご相談する現象にはまり、最新の8.2.4をソースからコンパイルして インストールしました。結果、どちらのバージョンでも同じ現象が出ていま す。
起きている現象は、作成したDBに、6,500件のメインテーブル、 それに外部結合したい4,000件のテーブルが二つあります。 SQLでLEFT OUTER JOINを使って、メインのテーブルに2つ 繋げているSQLをかけると、レスポンスが15秒ぐらい返ってきません。 (結果は、6,500件返ってきます。)
(1)6,500件のメインテーブル と 4,000件のテーブルを内部結合したとき---テストデータ (2)6,500件のメインテーブル と 4,000件のテーブルを外部結合したとき を比較するのが良いと思います。(考え方として。) (1)で、期待する動きをするなら、PostgreSQLの問題ではないと思います。 #ここで、単独(結合しない)のクエリーには帰ってきているのですよね。 (2)が、おかしいなら、外部結合して正常に動かす為の前提条件に問題が あるはずです。 #RedHat ES3やCentOS4.4、Mac OS Xなどは、それらの前提条件が #うまくいっているから動くのではないでしょうか。 (1), (2)がともにおかしいなら(期待どおりに動いてくれない) --- 外部結合以前の問題。 SLES 10PS1, やPostgreSQL 8.1.9, PostgreSQL 8.2.4 のOSのチューニングやPostgreSQLのチューニングに問題が あると考えられるのでそこをデバッグするべきだと思います。 #まずは、内部に対するクエリーと外部に対するクエリー #を比較して、問題の切り分けをすることが大切かと。(クエリーの件数に関係なく) #(いきなり、本番環境で出来る/出来ない をやってもデバックできないかと。) あと、このケースだと、何がしかのログ(syslogなり、PostgreSQLのログ) なりが出ているはずで... まずは、ログを見てみるのが問題解決の近道かと思います。 #どこまで、正しく動作して、どこから正しく動作していないかを #切り分けていくこと大切だと思います。 --- takezou061228 --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org