DBCC SHRINKLOG(并行数据仓库)

适用于:Analytics Platform System (PDW)

减少当前 Analytics Platform System (PDW) 数据库在设备中的事务日志大小。 已对数据进行碎片整理,以便收缩事务日志。 随着时间推移,数据库事务日志可能会变得零碎且效率低下。 使用 DBCC SHRINKLOG 减少碎片并减小日志大小。

Transact-SQL 语法约定

语法

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 DATABASEALTER DATABASE 语句中指定的 LOG_SIZE 参数。

示例

A. 将事务日志收缩到 CREATE DATABASE 指定的原始大小

假设创建 Addresses 数据库时,Addresses 数据库的事务日志已设置为 100 MB。 也就是说,AddressesCREATE 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

请参阅