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

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

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

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

●質問者: iiiiiiiii
●カテゴリ:ウェブ制作
✍キーワード:postgreSQL SQL システム ハードウェア パフォーマンス
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● info-cat
●10ポイント

http://www.postgresql.jp/

NPO法人 日本PostgreSQLユーザ会

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

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

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


2 ● YukiharuYabuki
●20ポイント

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

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


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


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

◎質問者からの返答

ありがとうございます。

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


3 ● cutxout
●30ポイント

http://www.postgresql.jp/wg/shikumi/archive.html

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

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

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


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


4 ● YukiharuYabuki
●20ポイント

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

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

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

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

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

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

◎質問者からの返答

ありがとうございます。

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

関連質問


●質問をもっと探す●



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