[pgsql-jp: 37754] Re: INDEXを残したまま大量データを高速に挿入したい
ITAGAKI Takahiro
itagaki.takahiro @ oss.ntt.co.jp
2006年 12月 4日 (月) 10:43:57 JST
板垣です。
ちょうど HACKERS(開発メーリングリスト)のほうでも、
Windows 環境での断片化についての話題が挙がっていましたので報告を。
"Tokuharu yuzawa" <tokuharu.yuzawa @ soliton.co.jp> wrote:
> コンピータの管理−>記憶域−>デフラグツール
> でDBが存在するドライブを、分析ボタンを押し分析してみたら、不連続状態の領域
> しか存在しないのですが、速度に大きく影響するのでしょうか?
> DBを停止した状態で、デフラグを行ってもDBへの影響はないのでしょうか?
> ちなみにDB以外のファイルは当ドライブには存在しません。
[PostgreSQL win32 fragmentation issue]
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00054.php
| Then I initialized pgbench with a -s 1000.
| 11% fragmentation. I dropped the bench database, and my fragmentation is 1%.
http://archives.postgresql.org/pgsql-hackers/2006-12/msg00068.php
| in our win32/ntfs environment, only 6 pgsql data-files are fragmented. but
| they are heavily fragmented. fragmentiation ranges from 1369 fragments for a
| 14mb file to 4548 fragments for a 628mb one... the database is only 1 week old.
PostgreSQLがちょっとずつファイルを拡張するのが悪いのでしょうね。
Windows (NTFS) との相性は、良く無さそうではあります。
(断片化の発生自体は、多かれ少なかれ、他のOSでも起こっているのでしょうが。)
> この不連続状態を回避する方法はありませんでしょうか?
> たとえばOracelでTABLEを作成するときのように初期状態にデータ領域確保量、次回
> 領域確保量・・・と言うような感じで?
昔から「必要なのでは?」といわれていますが、
断片化と性能の関連性をきちんと示した例がないので、
いまだ取り組まれてはいないようです。
------------------------------------------------------------
板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
pgsql-jp メーリングリストの案内