**これは [InterSystems FAQ サイト](https://faq.intersystems.co.jp/)の記事です。** ※データベースファイルとは、IRIS.DAT、および、CACHE.DATのことを指します。 Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 以降のバージョンより、データベースファイル のサイズの縮小に、データベースの「圧縮」と「未使用領域の削除」機能をあわせて使用できます。
※注意※
Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 より前のバージョンでは、データベースの「圧縮」機能は使用できません。使用された場合、データベース破損が引き起こされる可能性があります(「未使用領域の削除」機能は利用できます)。
詳細情報は以下、弊社ウェブサイト内のページをご確認ください。
製品ニュースとアラート>警告: データベース圧縮またはデフラグ後のデータベース整合性の問題
データベースサイズ縮小手順は以下の通りです。 管理ポータル: [システムオペレーション] > [データベース] を開き、操作したいデータベース名をクリックします。 (または、画面左上の[空き容量]ボタンをクリックし、データベースの空き容量を表示します。) ① 「圧縮」ボタンにより、データベースファイルの使用していないブロックを後ろに集めます<圧縮のイメージ> ●が使用中ブロック、〇が未使用ブロックだとします。
●●○●●○○●○○ ←のようにブロックが並んでいるデータベースファイル(*.DAT)を「圧縮」すると
●●●●●○○○○○ ←このようになります (左が前方)
②「未使用領域削除」ボタンにより、後方に集めた未使用ブロックを削除してデータベースファイルのサイズを縮小します。
<未使用領域削除のイメージ> ●が使用中ブロック、〇が未使用ブロックだとします。
●●●●●○○○○○ ←のようにブロックが並んでいるデータベースファイルに「未使用領域削除」を実行すると
●●●●● ←このようになります
圧縮について詳細は、ドキュメント([データベースの圧縮(IRIS)](http://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=GSA_manage#GSA_compact_databases_freespace))をご参照ください(2018.1以前のドキュメント:[データベースの圧縮](https://docs.intersystems.com/latestj/csp/docbook/DocBook.UI.Page.cls?KEY=GSA_manage#GSA_compact_databases_freespace))。 管理ポータルの操作と同様の処理を、[^DATABASE ユーティリティ](https://docs.intersystems.com/irislatest/csp/docbookj/DocBook.UI.Page.cls?KEY=ASECCLI#ASECCLI_database)を使用して実行することもできます。 %SYS ネームスペースに移動してから実行します。 USER>zn "%SYS" %SYS>do ^DATABASE 1) Create a database 2) Edit a database 3) List databases 4) Delete a database 5) Mount a database 6) Dismount a database 7) Compact globals in a database 8) Show free space for a database 9) Show details for a database 10) Recreate a database 11) Manage database encryption 12) Return unused space for a database // 「未使用領域削除」 13) Compact free space in a database // 「圧縮」 14) Defragment a database // 「DB の断片化解消」 15) Show background database tasks Option? ※「圧縮」 = 13) Compact freespace in a database 「未使用領域削除」= 12) Return unused space for a database ^DATABASE ユーティリティの 14) Defragment globals in a database(「DBの断片化解消」)について補足します。 「DBの断片化解消」では、指定したデータベースファイル内のグローバル毎にブロックが再編成され、データベースファイル内で連続領域に再配置します。 「圧縮」をより強力にしたものですが、この再配置を行う為には、データベースファイル末尾に十分な空きブロックが必要です(一般的に見て、デフラグを定期的に実行する必要はありません)。<「DBの断片化解消」のイメージ>
断片化解消前
♦♦○♠♠○♠♠♦♦♠♥♥♥○♦♦♥♥♦○○○○○○
断片化解消後
♦♦♦♦♦♦♦♠♠♠♠♠♥♥♥♥♥○○○○○○○○○