[pgsql-jp: 26627] Re: トランザクション中の select文でエラーが発生した場合
Yasuo Ohgaki
yohgaki @ ohgaki.net
2002年 7月 9日 (火) 16:24:29 JST
大垣です。
Tatsuo Ishii wrote:
> OIDカウンタのキャッシュの実体は共有メモリにあるので,バックエンドごと
> にキャッシュしているということはありません.もちろん,OIDを取得する際
> にロックは発生しますが.
失礼しました。シークエンスの場合とごちゃまぜになっていました。(汗
> また,コンカレントであろうとなかろうと,OIDが8192ごとにトランザクショ
> ンログが書かれるので,そっちの方が大きいのではないでしょうか.
> # see backend/access/transam/varsup.c
見てみました。8192毎のログを書くようになっていて、こちらが
大きなオーバーヘッドですね。CPUを沢山積んでいるSMPマシンの
ではログを書いている間のロック時間が長いようなので、同時実行
性を損ないそうですがあまり関係ないかも知れません。
8Kも新しいレコードを作っている間にディスクへの書き込みも何度
も発生するはずですから、本当にオーバーヘッドとして大きいかど
うかは?です。シングルCPUの場合はパフォーマンスにはほとんど
影響ないように思えます。
# OIDの有無を比較するベンチマークをとる場合、4way以上のSMP
# マシンでとってみないと面白くなさそうに思えます。
--
Yasuo Ohgaki
pgsql-jp メーリングリストの案内