管理 tempdb 資料庫

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

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

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

總覽

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

如要進一步瞭解如何管理這項資源,請參閱 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 為單位)。將大於或等於零的任何值傳遞至 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)

後續步驟