メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Amazon RDS で実行している Microsoft SQL Server DB インスタンスの tempdb データベースへのアクセス

Amazon RDS で実行している Microsoft SQL Server DB インスタンスの tempdb データベースにアクセスできます。tempdb に対してコードを実行するには、Microsoft SQL Server Management Studio (SSMS) 経由で Transact-SQL を使用するか、他の標準の SQL クライアントアプリケーションを使用します。DB インスタンスへの接続の詳細については、「Microsoft SQL Server データベースエンジンを実行する DB インスタンスに接続する」を参照してください。

DB インスタンスのマスターユーザーは、tempdb への CONTROL アクセスが付与されるため、tempdb データベースオプションを変更できます。マスターユーザーは、tempdb データベースの所有者ではありません。必要に応じて、マスターユーザーは他のユーザーに CONTROL アクセスを付与し、他のユーザーにも tempdb データベースオプションを変更することを許可できます。

注記

tempdb データベースに対して Database Console Command (DBCC) を実行することはできません。

tempdb データベースオプションの変更

Amazon RDS DB インスタンスで tempdb データベースのデータベースオプションを変更できます。変更可能なオプションの詳細については、Microsoft ドキュメントの「tempdb データベース」を参照してください。

ファイルの最大サイズオプションなどのデータベースオプションは、DB インスタンスの再起動後も保持されます。データベースオプションを変更して、データをインポートする際のパフォーマンスを最適化したり、ストレージ不足を防止したりすることができます。

データをインポートする際のパフォーマンスの最適化

大量のデータを DB インスタンス内にインポートする際のパフォーマンスを最適化するには、tempdb データベースの SIZE プロパティと FILEGROWTH プロパティに大きな数値を設定します。tempdb の最適化の詳細については、Microsoft ドキュメントの「tempdb のパフォーマンスの最適化」を参照してください。

以下の例では、ファイルサイズを 100 GB に、ファイルの拡張単位を 10 パーセントに設定しています。

Copy
alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)

ストレージの問題の防止

tempdb データベースによる使用可能なディスク容量の占有を防止するには、MAXSIZE プロパティを設定します。次の例では、プロパティを 2048 MB に設定しています。

Copy
alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)

tempdb データベースの圧縮

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

rds_shrink_tempdbfile プロシージャの使用

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

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

パラメータ名 データ型 デフォルト値 必須 説明

@temp_filename

SYSNAME

必須

圧縮するファイルの論理名。

@target_size

int

null

optional

ファイルの新しいサイズ (メガバイト単位)。

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

Copy
use tempdb; GO select name, * from sys.sysfiles; GO

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

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

SIZE プロパティの設定

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

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

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

マルチ AZ 配置に関する考慮事項

Amazon RDS DB インスタンスが Microsoft SQL Server でのデータベースのミラーリングによるマルチ AZ 配置にある場合、いくつかの考慮すべき事項があります。

tempdb データベースはレプリケーションできません。プライマリインスタンスに保存した一切のデータは、セカンダリインスタンスにレプリケーションされません。

tempdb データベースのデータベースオプションを変更した場合、その変更は以下のいずれかの方法でセカンダリに取り込むことができます。

  • まず DB インスタンスを変更してマルチ AZ を無効にします。次に tempdb を変更し、最後にマルチ AZ を再度有効にします。この方法に伴うダウンタイムはありません。

    詳細については、「Microsoft SQL Server データベースエンジンを実行する DB インスタンスの変更」を参照してください。

  • まず元のプライマリインスタンスで tempdb を変更します。次に手動でフェイルオーバーし、最後に新しいプライマリインスタンスで tempdb を変更します。このメソッドではダウンタイムが生じます。

    詳細については、「DB インスタンスを再起動する」を参照してください。