本頁說明如何管理 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 執行:
預設選項
msdb.dbo.gcloudsql_tempdb_shrinkfile @filename = '
FILENAME '其中:
- FILENAME:要縮小的檔案名稱。例如:
tempdev
。
這項指令會執行下列 SQL Server 指令:
USE tempdb
DBCC SHRINKFILE (@filename)
- FILENAME:要縮小的檔案名稱。例如:
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)
- EMPTY_FILE_INT:整數值,可以是 0 或 1。如果是 1,則會將
目標大小
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)
- TARGET_SIZE_INT:代表檔案目標大小的整數 (以 MB 為單位)。將大於或等於零的任何值傳遞至
僅限目標大小和截斷
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)
- TRUNCATE_ONLY_INT:接受 0 或 1 的整數值。
如果設為 1,系統會將
目標大小和無截斷選項
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)
- NO_TRUNCATE_INT:接受 0 或 1 的整數值。
如果設為 1,系統會將
後續步驟
- 瞭解執行個體設定。
- 瞭解如何監控 Cloud SQL 執行個體。