- ベストアンサー
データベースの速度差の理由とは?
- データベースの構造とインデックス、検索クエリーを同じ条件でテストサーバと実際のサーバで比較した結果、10倍までの速度差が生まれました。
- 違う箇所としては、実際のサーバのCPU:Xeon 3.2GHz メモリ:2GB、テストサーバのCPU:Pentium4 3.2GHz メモリ:2GBとなっています。
- スペックの違いやデータベースの最適化の有無などが速度差の原因と考えられます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
URLを貼り忘れました。 http://www.postgresql.jp/ また、差が出ているポイントは、テスト環境ではMerge Join、本番環境ではNested Loop さらにloops=38となっている部分だと思います。 具体的に「SQLのどの記述の部分」ということは、インデクスの定義とSQLが分からないと具体的にはアドバイスできません。
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
#1です。 PostgeSQLのバージョンが不明ですが、EXPLAINの表示結果の見方は、マニュアルの次のような箇所にあります。 http://www.postgresql.jp/document/pg800doc/html/performance-tips.html 私は「専門家」としていますが、PostgreSQLのこの辺の情報の解析、細かな性能に関するパラメタ類に関しては、それ程、詳しくありません。 また、PostgreSQLには、アクセス計画の生成に関するいろいろなパラメタがあるようで、このサイトでは適切に答えられる人はなかなかいません。 日本PostgreSQLユーザ会のメーリングリストに登録し、質問することをお勧めします。(私も登録していて、時々、アドバイスしています)
- chukenkenkou
- ベストアンサー率43% (833/1926)
自分で解析しようと努力しましたか? ここのサイトは、「分からない部分を具体的示し、質問する」サイトであり、解析 作業を誰かにやってもらうサイトではありません。 >データベースの構造とインデックス、検索クエリー >全て同じ条件でテストサーバと実際のサーバで >検索を行っている データ件数や重複件数などが、全然違うのでは? ご自身で貼り付けた情報を見てみてください。 操作対象になっている行数が全然違うし、あちこちアクセス計画も違っています。
お礼
遅れましたが 非常にありがたいアドバイスです。 テストと本番ですので、データ量の違いは埋めれない ないのですが、それでも数千程度の違いでなぜ10倍物 差が出るのか不思議でならなかったのですが、 教えていただいたポイントを頼りにもう少し調べて行きたいと 思います。 どうもありがとう御座います。