tempdb データベースを管理する

このページでは、Cloud SQL での tempdb データベースの管理について説明します。

tempdb データベースは、一時テーブル、ストアド プロシージャなど、多くのオブジェクトを保持するシステム データベースです。インスタンスでは、このデータベースに対して一般的なオペレーションを実施できます。

tempdb データベースは、インスタンスが再起動されるたびに再作成されます。ユーザー権限の損失を防ぐため、Cloud SQL はインスタンスの再起動後に sqlserver ユーザーに権限を付与します。

概要

sqlserver ユーザーには、tempdb データベース オプションを管理するための ALTER 権限があります。

このリソースの管理の詳細については、tempdb データベースのページをご覧ください。

tempdb ファイルを管理する

インスタンスに接続すると、sqlserver ユーザーは tempdb ファイルを管理できます。

ファイル数

ユーザーには tempdb データベースに対する ALTER 権限があり、ファイル数などの設定を管理できます。オペレーションの例を次に示します。

  • ALTER DATABASE [tempdb] ADD FILE
  • ALTER DATABASE [tempdb] REMOVE

ファイルサイズ

以降のセクションでは、tempdb データベース内のファイルのサイズを制御するために使用される方法について説明します。

これらの方法の詳細については、tempdb データベースを圧縮するをご覧ください。

tempdb のファイルサイズを変更する

tempdb データベース内のファイルのサイズを制御するには、ALTER DATABASE ステートメントを使用します。詳細については、ALTER DATABASE(Transact-SQL)ファイルおよびファイルグループ オプションをご覧ください。

個々のファイルサイズを縮小する

msdb.dbo.gcloudsql_tempdb_shrinkfile は、tempdb データベース内の個々のファイルを圧縮するために使用できるストアド プロシージャです。

このストアド プロシージャには、DBCC SHRINKFILE コマンドと同じ利点があります。

Cloud SQL Studio から実行される msdb.dbo.gcloudsql_tempdb_shrinkfile ストアド プロシージャとそのパラメータの使用例を次に示します。

  1. デフォルト オプション

    msdb.dbo.gcloudsql_tempdb_shrinkfile @filename = 'FILENAME'

    ここで

    • FILENAME: 圧縮するファイルの名前。例: tempdev

    このコマンドは、次の SQL Server コマンドを実行します。

    • USE tempdb
    • DBCC SHRINKFILE (@filename)
  2. EMPTYFILE

    msdb.dbo.gcloudsql_tempdb_shrinkfile @filename = 'FILENAME', @empty_file=EMPTY_FILE_INT

    ここで

    • EMPTY_FILE_INT: 0 または 1 の整数値。1 の場合、EMPTYFILE がオプションとして渡されます。このオプションは他のパラメータよりも優先されます。

    このコマンドは、次の SQL Server コマンドを実行します。

    • USE tempdb
    • DBCC SHRINKFILE (@filename, EMPTYFILE)
  3. ターゲット サイズ

    msdb.dbo.gcloudsql_tempdb_shrinkfile @filename = 'FILENAME', @target_size=TARGET_SIZE_INT

    ここで

    • TARGET_SIZE_INT: ファイルのターゲット サイズ(MB)を表す整数。0 以上の値を DBCC SHRINKFILE コマンドに渡します。例: 10

    このコマンドは、次の SQL Server コマンドを実行します。整数 10 が例として含まれています。

    • USE tempdb
    • DBCC SHRINKFILE (@filename, 10)
  4. ターゲット サイズと切り捨てのみ

    msdb.dbo.gcloudsql_tempdb_shrinkfile @filename = 'FILENAME', @target_size=10, @truncateonly=TRUNCATE_ONLY_INT

    ここで

    • TRUNCATE_ONLY_INT: 0 または 1 の整数値を受け入れます。1 に設定すると、TRUNCATEONLY がオプションとして渡されます。TRUNCATEONLY が渡された場合、ターゲット サイズは無視されます。このオプションは NOTRUNCATE よりも優先されます。

    このコマンドは、次の SQL Server コマンドを実行します。

    • USE tempdb
    • DBCC SHRINKFILE (@filename, 10, TRUNCATEONLY)
  5. ターゲット サイズと切り捨てオプションなし

    msdb.dbo.gcloudsql_tempdb_shrinkfile @filename = 'FILENAME', @target_size=10, @no_truncate=NO_TRUNCATE_INT

    ここで

    • NO_TRUNCATE_INT: 0 または 1 の整数値を受け入れます。1 に設定すると、NOTRUNCATE がオプションとして渡されます。

    このコマンドは、次の SQL Server コマンドを実行します。

    • USE tempdb
    • DBCC SHRINKFILE (@filename, 10, NOTRUNCATE)

次のステップ