本页介绍了 Cloud SQL 中临时数据库的管理方法。
tempdb 数据库是一种保存多个对象的系统数据库,其中包括临时表、存储过程等。在您的实例中,您可以对此数据库执行常见操作。
每次实例重启时,系统都会重新创建 Tempdb 数据库。为了防止用户权限丢失,Cloud SQL 会在实例重启后向 sqlserver
用户提供权限。
概览
sqlserver
用户具有管理 tempdb 数据库选项的 ALTER 权限。
如需详细了解如何管理此资源,请参阅 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:一个整数,表示文件的目标大小(以兆字节为单位)。将任何大于或等于零的值传递给
DBCC SHRINKFILE
命令。例如10
。
此命令会执行以下 SQL Server 命令。整数 10 已作为示例包含在内:
USE tempdb
DBCC SHRINKFILE (@filename, 10)
- TARGET_SIZE_INT:一个整数,表示文件的目标大小(以兆字节为单位)。将任何大于或等于零的值传递给
仅限目标大小和截断
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 实例。