管理 tempdb 資料庫

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

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

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

總覽

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

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

管理 tempdb 檔案

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

檔案數

使用者對 tempdb 資料庫擁有 ALTER 權限,可控制檔案數量等設定。

新增檔案時,實體路徑必須使用 /var/opt/mssql/data/ 目錄。

以下是部分作業範例:

  • 新增檔案:

    ALTER DATABASE [tempdb] ADD FILE (NAME = LOGICAL_FILENAME, FILENAME = PHYSICAL_FILENAME, SIZE = SIZE)
    

    請替換下列項目:

    • LOGICAL_FILENAME:檔案的邏輯名稱。例如:tempdev4。
    • PHYSICAL_FILENAME:檔案的完整路徑。例如:/var/opt/mssql/data/tempdb4.ndf。
    • SIZE:檔案大小。例如:1GB。
  • 移除檔案:

    ALTER DATABASE [tempdb] REMOVE FILE LOGICAL_FILENAME
    

    請進行下列替換:

    • LOGICAL_FILENAME:檔案的邏輯名稱。例如:tempdev4。

檔案大小

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

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

變更 tempdb 中的檔案大小

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

縮減個別檔案大小

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)

後續步驟