DBCC SHRINKLOG(并行数据仓库)
适用于:Analytics Platform System (PDW)
减少当前 Analytics Platform System (PDW) 数据库在设备中的事务日志大小。 已对数据进行碎片整理,以便收缩事务日志。 随着时间推移,数据库事务日志可能会变得零碎且效率低下。 使用 DBCC SHRINKLOG
减少碎片并减小日志大小。
语法
DBCC SHRINKLOG
[ ( SIZE = { target_size [ MB | GB | TB ] } | DEFAULT ) ]
[ WITH NO_INFOMSGS ]
[;]
参数
SIZE = { target_size [ MB | GB | TB ] } | DEFAULT
target_size 是 DBCC SHRINKLOG
完成后所有计算节点上所需的事务日志大小。 它必须是大于 0 的整数。
日志大小的单位为兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB)。 它是所有计算节点上事务日志的组合大小。
默认情况下,DBCC SHRINKLOG
可将事务日志减小到数据库的元数据中存储的日志大小。 元数据中的日志大小是由 CREATE DATABASE (Azure Synapse Analytics) 或 ALTER DATABASE (Azure Synapse Analytics) 中的 LOG_SIZE
参数确定的。 已指定 SIZE = DEFAULT
或省略 SIZE
子句时,DBCC SHRINKLOG
可将事务日志大小减小到默认大小。
WITH NO_INFOMSGS
DBCC SHRINKLOG
结果中不显示提示消息。
权限
需要 ALTER SERVER STATE 权限。
备注
DBCC SHRINKLOG
不会更改数据库的元数据中存储的日志大小。 元数据继续包含 CREATE DATABASE
或 ALTER DATABASE
语句中指定的 LOG_SIZE
参数。
示例
A. 将事务日志收缩到 CREATE DATABASE 指定的原始大小
假设创建 Addresses
数据库时,Addresses
数据库的事务日志已设置为 100 MB。 也就是说,Addresses
的 CREATE DATABASE
语句包含 LOG_SIZE = 100 MB
。 现在,假设日志大小已增加到 150 MB,而你希望将其收缩到 100 MB。
以下每个语句都会尝试将 Addresses
数据库的事务日志收缩到 100 MB 的默认大小。 如果将日志收缩到 100 MB 会导致数据丢失,DBCC SHRINKLOG
会尽可能地将日志收缩到最小(大于 100 MB),而不会丢失数据。
USE Addresses;
GO
DBCC SHRINKLOG ( SIZE = 100 MB );
GO
DBCC SHRINKLOG ( SIZE = DEFAULT );
GO
DBCC SHRINKLOG;
GO