PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
10855 00/03/28 21:36:59 RE(3):PB6: MDBファイルの肥大化の解決策 By Ark
10748 00/03/20 22:13:09 RE(2):PB6: MDBファイルの肥大化の解決策 By あすかちゃんの父
10700 00/03/14 21:37:27 RE(1):PB6: MDBファイルの肥大化の解決策 By M.M
10697 00/03/14 20:15:12 PB6: MDBファイルの肥大化の解決策 By Ark

カテゴリ:データベース
日付:2000年03月20日 22:13 発信者:あすかちゃんの父
題名:RE(2):PB6: MDBファイルの肥大化の解決策

Arkさん、こんばんは。

>データベースとはそういうものです。
>レコードの追加・削除を繰り返すと、このような現象が発生します。

>MS-Accessだけでなく、SQL Anywhereでもこういった現象が発生することが確認されています。
>Oracleではディスクサイズこそ増えませんが、フラグメンテーションが発生するため
>パフォーマンスが悪化する現象が発生してしまいます。

>対策としては、ファイルを最適化するとか、データをエクスポートしてから各テーブルの
>データをクリアし、再度インポートするといった方法しかなさそうです。(私のレベルでは)

M.Mさんのコメントの通りです。RDBMSはデータを削除してもそのデ
ータのディスク領域は解放しません。これはデータの管理のために
このようになっています。
またデータの削除以外に可変長文字列データの更新でも、ファイル
の肥大の原因となるので注意を要します。

例えばVarchar(100)と定義されたカラムに70byteの文字列をInsert
すると、RDBMSのディスク領域に70byteのデータ領域が確保され、
文字列が格納されます。このカラムに対して85byteの文字列をUpdate
すると、確保されたデータ領域が70byteしかなく格納できないので元
の70byteの領域は削除され、新たに85byteの領域が取られます。この
場合も元の70byteの領域はデータは削除されても領域は解放されな
いため、ファイルの肥大につながります。
さらに1つのレコードのカラムが分断されてディスク領域に格納され
ることになるので、検索時のパフォーマンスにも影響します。
文字列はVarcharで定義するのを薦める方もいますが、固定長とする
か可変長とするかはデータベースの設計時に十分検討すべきと思いま
す。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.