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 インスタンスのマスターユーザーは、CONTROL
への tempdb
アクセスが付与されるため、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 パーセントに設定しています。
alter database[tempdb] modify file (NAME = N'
templog
', SIZE=100GB
, FILEGROWTH =10%
)
ストレージの問題の防止
tempdb
データベースによる使用可能なディスク容量の占有を防止するには、MAXSIZE
プロパティを設定します。次の例では、プロパティを 2048 MB に設定しています。
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
データベースを圧縮できます。rds_shrink_tempdbfile
が CONTROL
にアクセスできる場合にのみ、tempdb
を呼び出すことができます。rds_shrink_tempdbfile
を呼び出すとき、DB インスタンスのダウンタイムはありません。
rds_shrink_tempdbfile
プロシージャには以下のパラメータがあります。
パラメータ名 | データ型 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
|
SYSNAME |
— |
必須 |
圧縮するファイルの論理名。 |
|
int |
null |
optional |
ファイルの新しいサイズ (メガバイト単位)。 |
次の例では、tempdb
データベース用にファイル名を取得します。
use tempdb; GO select name, * from sys.sysfiles; GO
以下の例では、tempdb
という名前の test_file
データベースファイルを圧縮し、新しいサイズとして 10
メガバイトをリクエストしています。
exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'
test_file
', @target_size =10
;
SIZE プロパティの設定
tempdb
を設定して DB インスタンスを再起動することでも、SIZE
データベースを圧縮できます。DB インスタンスの再起動の詳細については、「 DB インスタンスの再起動」を参照してください。
次の例では、SIZE
プロパティを 1024 MB に設定しています。
alter database [tempdb] modify file (NAME = N'
templog
', SIZE =1024MB
)
マルチ AZ 配置に関する考慮事項
Amazon RDS DB インスタンスが、マルチ AZ 配置の Microsoft SQL Server でのデータベースのミラーリング (DBM) または AlwaysOn 可用性グループ (AG) である場合、いくつかの考慮すべき事項があります。
tempdb
データベースをレプリケートできません。プライマリインスタンスに保存した一切のデータは、セカンダリインスタンスにレプリケーションされません。
tempdb
データベースのデータベースオプションを変更した場合、その変更は以下のいずれかの方法でセカンダリに取り込むことができます。
-
まず DB インスタンスを変更してマルチ AZ を無効にします。次に tempdb を変更し、最後にマルチ AZ を再度有効にします。この方法に伴うダウンタイムはありません。
詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
-
まず元のプライマリインスタンスで
tempdb
を変更します。次に手動でフェイルオーバーし、最後に新しいプライマリインスタンスでtempdb
を変更します。このメソッドではダウンタイムが生じます。詳しくは、「 DB インスタンスの再起動」を参照してください。