postgresqlを使ったシステムを構築していますが、パフォーマンスに難を感じています。


パフォーマンスを向上させる、SQL的な考え方や、ストアドの利用などについて知りたいです。

ハードウェア関連、postgresqlをやめるというのはなしでお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/09/05 15:15:55
  • 終了:--

回答(4件)

id:info-cat No.1

info-cat回答回数1ベストアンサー獲得回数02005/08/22 18:02:10

ポイント10pt

http://www.postgresql.jp/

NPO法人 日本PostgreSQLユーザ会

ファイルシステムをRAIDストライプ化したりするとパフォーマンスが上がるかもしれません。OS側からのチューニングでは余分なサーバープログラムやデーモンプログラムを止めるとデーターベースサーバープログラムがわずかでも動きが改善するかもです。

http://www.linux.or.jp/

$BF|K\$N(B Linux $B>pJs(B

id:YukiharuYabuki No.2

YukiharuYabuki回答回数50ベストアンサー獲得回数22005/08/22 21:33:12

ポイント20pt

データ量やメモリーの量などによります。

Linuxの上などであれば、共有メモリの設定。


ハードディスクであれば、ディスクの読み書きスピードを向上させる。ちゃんとインデックスをはる。パキュームをする。


あとは、インデックスが有効に働くようにするには、ユニークなデータがはいるカラムに張ること。

id:iiiiiiiii

ありがとうございます。

ハードウェア的なものは、対処できないので、SQLの考え方とか、プログラムの組み方とかの方向の答えがほしいですね。「ちゃんとインデックスをはる。パキュームをする。」は参考になります。

2005/08/22 22:00:37
id:cutxout No.3

cutxout回答回数3ベストアンサー獲得回数02005/08/23 22:21:28

ポイント30pt

こちらに、PostgreSQLのしくみ分科会の勉強会資料が公開されています。

主にpostgresql.confの設定変更によるチューニングですが、設定変更 -> pgbenchで効果測定を繰り返してみると、かなりパフォーマンスが変わってくるのが実感できます。

ハードウェア的なモノは難しいとのことでしたので、チェック1(共有バッファ)、チェック2(トランザクションログバッファ)、チェック3(ライタープロセス)、チェック5(チェックポイントセグメント数)を中心に試されては如何でしょうか?


また、http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html#3.3にもありますが、VACUUM後にANALYZEを行い、統計情報の正確さを保つなど。

id:YukiharuYabuki No.4

YukiharuYabuki回答回数50ベストアンサー獲得回数22005/08/23 23:05:19

ポイント20pt

ハードウェアを利用しているのは、ソフトウェアなので

(1)ハードディスクのドライバーは更新しておく

(2)ハードディスクの外周にデータをおくと、読み書きがはやくなるので(データ転送量の関係、ただしraidなどの場合は、これは仕組上だめなので回転数の高いハードディスクを使うぐらいか)

- PostgreSQLは、いまの最新である8.0系列を使う。

- SQLの分析には、analyzeでSQLのコストを計算する。

- ストアドは、多用するとプログラムがわかりにくくなるので、サブルーチン的にSELECTした、膨大な結果を使いまわすことで、ネットワーク越しにデータの取得量を減らすことでスループットを上げる

id:iiiiiiiii

ありがとうございます。

すこしづつ分析しながらSQLの調整などをしていきます。

2005/08/23 23:12:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません