管理 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)

後續步驟