

# tempdb データベースの圧縮
<a name="SQLServer.TempDB.Shrinking"></a>

Amazon RDS DB インスタンスの `tempdb` データベースを圧縮するには、2 つの方法があります。`rds_shrink_tempdbfile` プロシージャを使用するか、`SIZE` プロパティを設定できます。

## rds\$1shrink\$1tempdbfile プロシージャの使用
<a name="SQLServer.TempDB.Shrinking.Proc"></a>

Amazon RDS プロシージャ `msdb.dbo.rds_shrink_tempdbfile` を使用すると、`tempdb` データベースを圧縮できます。`rds_shrink_tempdbfile` が `CONTROL` にアクセスできる場合にのみ、`tempdb` を呼び出すことができます。`rds_shrink_tempdbfile` を呼び出すとき、DB インスタンスのダウンタイムはありません。

`rds_shrink_tempdbfile` プロシージャには以下のパラメータがあります。


****  

| パラメータ名 | データ型 | デフォルト | 必須 | 説明 | 
| --- | --- | --- | --- | --- | 
| `@temp_filename` | SYSNAME | — | 必須 | 圧縮するファイルの論理名。 | 
| `@target_size` | int | null | optional | ファイルの新しいサイズ (メガバイト単位)。 | 

次の例では、`tempdb` データベース用にファイル名を取得します。

```
1. use tempdb;
2. GO
3. 
4. select name, * from sys.sysfiles;
5. GO
```

以下の例では、`tempdb` という名前の `test_file` データベースファイルを圧縮し、新しいサイズとして `10` メガバイトをリクエストしています。

```
1. exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;
```

## SIZE プロパティの設定
<a name="SQLServer.TempDB.Shrinking.Size"></a>

`tempdb` を設定して DB インスタンスを再起動することでも、`SIZE` データベースを圧縮できます。DB インスタンスの再起動の詳細については、「[ DB インスタンスの再起動](USER_RebootInstance.md)」を参照してください。

次の例では、`SIZE` プロパティを 1024 MB に設定しています。

```
1. alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)
```