DBCC SHRINKFILE 命令中哪些参数是默认参数?

Har*_*rry 4 sql-server

我知道收缩不是一个好的做法,但如果我只执行 ie: dbcc shrinkfile (filename,1024),哪个是默认值?notruncate或者truncateonly?我在文档中没有找到任何有关它的信息。

NOTRUNCATE 在指定或不指定 target_percent 的情况下,将已分配的页从数据文件的末尾移动到文件前面的未分配的页。文件末尾的可用空间不会返回给操作系统,并且文件的物理大小不会更改。因此,如果指定 NOTRUNCATE,文件似乎不会收缩。

NOTRUNCATE 仅适用于数据文件。日志文件不受影响。

FILESTREAM 文件组容器不支持此选项。

....

TRUNCATEONLY 将文件末尾的所有可用空间释放给操作系统,但不在文件内执行任何页面移动。数据文件仅收缩到最后分配的范围。

如果使用 TRUNCATEONLY 指定,则忽略 target_size。

TRUNCATEONLY 选项不会移动日志中的信息,但会从日志文件末尾删除不活动的 VLF。FILESTREAM 文件组容器不支持此选项。

AMt*_*two 8

默认行为是不执行这些操作。该命令的这两个修饰符DBCC SHRINKFILE都会更改默认行为。

默认情况下,DBCC SHRINKFILE会将数据移动到文件的开头(在数据文件中),然后从文件末尾释放可用空间(在日志文件和数据文件中)。

NOTRUNCATE选项仅将数据移动到文件的开头(在数据文件中),而不释放文件末尾的可用空间。由于日志文件不会移动文件内的数据,因此此选项在事务日志文件上使用时没有意义。

TRUNCATEONLY选项只会释放文件末尾的可用空间,而不移动数据文件中的任何数据。由于日志文件不会移动文件内的数据,因此这实际上日志文件的默认行为。