管理 tempdb 資料庫

本頁說明如何管理 Cloud SQL 中的 tempdb 資料庫。

tempdb 資料庫是系統資料庫,可保存許多物件,包括暫時性資料表、預存程序等。您可以在執行個體中對這個資料庫執行常見作業。

每次重新啟動執行個體時,系統都會重新建立 tempdb 資料庫。為避免使用者權限遺失,Cloud SQL 會在執行個體重新啟動後,將權限提供給 sqlserver 使用者。

總覽

sqlserver 使用者擁有 ALTER 權限,可管理 tempdb 資料庫選項。

如要進一步瞭解如何管理這項資源,請參閱 tempdb 資料庫頁面。

管理 tempdb 檔案

連線至執行個體後,sqlserver user 即可管理 tempdb 檔案。

檔案數

使用者在 tempdb 資料庫中擁有 ALTER 權限,可控管檔案數量等設定。以下列舉部分作業範例:

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

檔案大小

以下各節說明如何控制 tempdb 資料庫中的檔案大小。

如要進一步瞭解這些方法,請參閱「縮減 tempdb 資料庫」。

變更 tempdb 中的檔案大小

如要控管 tempdb 資料庫中的檔案大小,請使用 ALTER DATABASE 陳述式。詳情請參閱「ALTER DATABASE (Transact-SQL) File and Filegroup Options」。

縮減個別檔案大小

msdb.dbo.gcloudsql_tempdb_shrinkfile預存程序,可用於縮減 tempdb 資料庫中的個別檔案。

這個預存程序可提供與 DBCC SHRINKFILE 指令相同的所有優點。

以下是 msdb.dbo.gcloudsql_tempdb_shrinkfile 預存程序及其參數的範例用法,可從 Cloud SQL Studio 執行:

  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 為單位)。將大於或等於零的任何值傳遞至 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)

後續步驟