[pgsql-jp: 37763] Re: INDEXを残したまま大量データを高速に挿入したい
Bobby
amidtown @ yahoo.co.jp
2006年 12月 7日 (木) 15:03:12 JST
湯沢です、返信が遅くなりました。
色々と参考しなるご意見有難うございます。
>Windows Server ですから、それなりのハードウエアの
> 筈ですので・・・
Xeon 5110 I.6GHz 4GByte DISK 500GByteを使用しています。
> 数千万レコードを有する単一テーブルは作成したくありません。
> (たとえ、商用DBを使用したとしても)
> テーブル・パーティショニングを検討されたらいかがでしょうか?
テーブル・パーティショニングについてですが、単一物理TABLEには
1千万件前後になる様にしてパーティショニングしてあります。
どうも問題は、同時に集計結果を更新(UPDATE)している別TABLEが存在しますが、そ
のTABLEが挿入速度を半減している要因のようです。
挿入件数のおよそ10%位の件数割合で別テーブルに更新が発生しています(現在は)
このときFSMに入りきらない倫理削除レコードが出来Dead Spaceになる領域が増え格
納速度に影響しているのではないかと考えました。
VACUUM FULLを行いDead spaceをOSに返却してやろうと考えVACUUM FULLをTABLE指定
行いました。
1回のVACUUM FULL VERBOSE ”TABLE名指定”で指定したTABLEの全てのDead spaceが
OSに返却されないようですが、そういう仕様なのでしょうか?
多数回行うとVERBOSEで出力されるメッセージの最終行に
INFO: "TABLE名": scanned 3000 of 3093 pages, containing 265976 live rows
and 0 dead rows; 3000 rows in sample, 274221 estimated total rows
この "0 dead rows"になるまでVACUUM FULL VERBOSE ”TABLE名指定”を何回も行い
その後にデータの格納を再び行った結果、格納速度が回復しました。
VACUUM FULL VERBOSE ”TABLE名指定”で複数回行うのではなく1回で、指定した
TABLEのDead spaceを返却して欲しいのですが可能でしょうか?
--------------------------------------
Yahoo! JAPAN - Red Ribbon Campaign 2006
http://pr.mail.yahoo.co.jp/redribbon/
pgsql-jp メーリングリストの案内