本頁面說明如何管理 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
儲存程序及其參數的範例用途:
預設選項
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 執行個體。