・ |
ログファイルの空き容量が少なくなるとトランザクションが失敗する可能性あり |
|
使用可能領域がなくなるとデータベースの変更、更新等が行えなくなる |
|
→ |
データベースへの十分な領域の割り当てを行う |
|
・ |
ファイルサイズの確認方法 |
|
⇒ |
Enterprise Manager → データベースのプロパティ |
|
⇒ |
sp_helpfile |
○ ファイルの拡張
・ |
既定で自動拡張、無制限に拡張、拡張増分値:10% |
・
|
Enterprise Manager → データベースのプロパティまたは ALTER DATABASE ステートメントで設定変更可 |
○ ファイルの圧縮
・ |
データベースの自動圧縮(既定:無効、ただし Desktop Edition を除く) |
|
⇒ |
Enterprise Manager → データベースのプロパティ → [オプション]タブ → [自動圧縮] |
|
⇒ |
ALTER DATABASE AUTO_SHRINK ステートメント |
|
⇒ |
exec sp_dboption 'データベース名
','autoshrink','TRUE' |
|
※ |
圧縮サイズの指定は不可 |
|
※ |
ファイル未使用領域が 25% (変更不可)を超えるとデータおよびログファイルを圧縮 |
|
※ |
ログの圧縮はアクティブな領域が含まれていない場合に限り実行 |
|
※ |
Transact-SQL による設定の確認方法 |
|
|
⇒ |
SELECT DATABASEPROPERTYEX ('データベース名', 'ISAUTOSHRINK') |
|
|
|
0 → 無効 1 → 有効 |
|
※ |
圧縮はバックグラウンドで実行 → ユーザーアクティビティに影響を与えない |
|
・ |
データベースの手動圧縮 |
|
⇒ |
Enterprise Manager → データベース右クリック → すべてのタスク → [データベースの圧縮] |
|
|
※ |
SQL Server 7.0 にも存在するが、あまり圧縮されない? |
|
⇒ |
DBCC SHRINKDATABASE |
|
|
※ |
初期作成サイズまたは model データベースのサイズより小さくすることは不可 |
|
|
|
→ DBCC SHRINKFILE で圧縮 |
|
|
※ |
圧縮後のデータベースファイルに残す領域のパーセンテージを指定 |
|
・ |
ファイルの手動圧縮 |
|
⇒
|
Enterprise Manager → データベース右クリック → すべてのタスク → [データベースの圧縮] → [ファイルの圧縮] |
|
⇒ |
DBCC SHRINKFILE |
|
|
※ |
初期作成サイズ以下に圧縮可能 |
|
|
※ |
圧縮後のファイルサイズを指定(MB 単位) → 圧縮後は初期ファイルサイズとしてリセット |
|
|
※ |
指定したファイルのデータを同ファイルグループの別ファイルに移動可能
(EMPTYFILE オプション) |
|
※ |
トランザクションログファイルの圧縮は非アクティブ領域を圧縮 |
|
※ |
ログファイルを指定サイズまで圧縮できないときはメッセージが返され、実施事項を表示 |
|
|
− |
アクティブなログの部分が指定のサイズを超えている |
|
|
− |
アクティブなログをトランザクションログファイルの末尾から移動するための操作を表示 |
|
|
|
→ 指示内容実行後、再度 DBCC SHRINKDATABASE|SHRINKFILE ステートメントを再実行 |
★ 圧縮時にはパフォーマンスが低下するため、実行タイミングには注意!!