DBCC SHRINKLOG - 分析平台系统 (PDW)

适用于: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 完成后所有计算节点上所需的事务日志大小。 它是大于零的整数。

日志大小的单位为兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB)。 它是所有计算节点上事务日志的组合大小。

默认情况下,DBCC SHRINKLOG 可将事务日志减小到数据库的元数据中存储的日志大小。 LOG_SIZE CREATE DATABASE(Azure Synapse Analytics)ALTER DATABASE(Azure Synapse Analytics)中的参数确定元数据中的日志大小。 已指定 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