DBCC SHRINKFILE收缩日志/收缩数据库/收缩文件

DBCC SHRINKFILE

收缩相关数据库的指定数据文件或日志文件大小。

语法

DBCC SHRINKFILE
    ( { file_name | file_id }
        { [ ,target_size ]
            | [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ] 
        }
    )

参数

file_name

是已收缩文件的逻辑名称。文件名必须符合标识符的规则。有关更多信息,请参见使用标识符。

file_id

是要收缩的文件的标识 (ID) 号。若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles。

target_size

是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,DBCC SHRINKFILE 将文件大小减少到默认文件大小。

如果指定 target_size,DBCC SHRINKFILE 将试图将文件收缩到指定大小。将要释放的文件部分中的已使用页将重新定位到保留的文件部分中的可用空间。例如,如果数据文件为 10MB,则带有 target_size 为 8 的 DBCC SHRINKFILE 将导致文件最后 2 MB 中所有已用页重新分配到文件前 8 MB 中的任何可用槽中。DBCC SHRINKFILE 不会将文件收缩到小于存储文件中的数据所需要的大小。例如,如果使用 10MB 数据文件中的7 MB,带有 target_size 为 6 的 DBCC SHRINKFILE 语句只能将该文件收缩到 7 MB,而不能收缩到 6 MB。

EMPTYFILE

将所有数据从指定文件中迁移到同一文件组中的其它文件。Microsoft® SQL Server™ 不再允许将数据放在用于 EMPTYFILE 选项的文件上。该选项允许使用 ALTER DATABASE 语句除去文件。

NOTRUNCATE

导致将释放的文件空间保留在文件中。

当与 target_size 一起指定 NOTRUNCATE 时,释放的空间不会释放给操作系统。DBCC SHRINKFILE 的唯一影响是将已使用的页从 target_size 行上面重新定位到文件的前面。当未指定 NOTRUNCATE 时,所有释放的文件空间返回给操作系统。

TRUNCATEONLY

导致文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次分配的大小,从而减少文件大小,而不移动任何数据。不尝试将行重新定位到未分配页。如果使用 TRUNCATEONLY,将忽略 target_size

注释

DBCC SHRINKFILE 适用于当前数据库中的文件。将上下文切换到数据库,以发出引用该特定数据库中文件的 DBCC SHRINKFILE 语句。有关更改当前数据库的更多信息,请参见 USE。

所生成的数据库不能比 model 数据库更小。

使用 DBCC SHRINKFILE 以将文件减小到比其最初创建时更小。之后,文件的最小大小重置为新指定的大小。

若要删除在文件中可能出现的任何数据,请在执行ALTER DATABASE 之前执行 DBCC SHRINKFILE('file_name', EMPTYFILE)。

要收缩的数据库不必在单用户模式下;收缩文件时,同时其他用户可以在数据库中工作。不必在单用户模式下运行 SQL Server 以对系统数据库进行收缩。

对于日志文件,SQL Server 使用 target_size 以计算整个日志的目标大小;因此,target_size 是收缩操作完成后日志中的可用空间大小。之后,整个日志的目标大小可以解释为每个日志文件的目标大小。DBCC SHRINKFILE 尝试立即将每个物理日志文件收缩至其目标大小。如果虚拟日志中的所有逻辑日志部分都没有超出日志文件的目标大小,该文件将成功截断,DBCC SHRINKFILE 完成且不显示任何消息。然而,如果虚拟日志中的逻辑日志部分超出目标大小,则 SQL Server 释放尽可能多的空间并发出一条消息。该信息告诉您需要执行什么操作来移动文件末尾超出虚拟日志的逻辑日志部分。执行完该操作后,可以重新发出 DBCC SHRINKFILE 命令以释放剩余的空间。有关收缩事务日志的更多信息,请参见收缩事务日志。

因为日志文件只能收缩到虚拟日志文件边界,所以不可能将日志文件收缩到比虚拟日志文件更小(即使现在没有使用该文件)。例如,可以将数据库的 1 GB 日志文件收缩到只有 128 MB。有关截断的更多信息,请参见截断事务日志。有关确定虚拟日志文件大小的更多信息,请参见虚拟日志文件。

结果集

下表描述结果集内的列。

DbIdSQL Server 试图收缩的文件的数据库标识号。FileIdSQL Server 试图收缩的文件的文件标识号。CurrentSize文件当前占用的 8KB 页数。MinimumSize文件可以占用的最小 8KB 页数。这与文件的最小大小或最初创建时的大小相对应。UsedPages文件当前使用的 8KB 页数。EstimatedPagesSQL Server 估计文件能够收缩到的 8KB 页数。
权限

DBCC SHRINKFILE 权限默认授予 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员且不可转让。

示例

下例将 UserDB 用户数据库中名为 DataFil1 的文件收缩到 7 MB。

USE UserDB

GO

DBCC SHRINKFILE (DataFil1, 7)

GO

 

原文参见"http://www.yesky.com/imagesnew/software/tsql/ts_dbcc_8b51.htm"

转载于:https://www.cnblogs.com/gered/p/9366256.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode--2. 两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字…

【Brain】复旦类脑研究院:破解大脑奥秘,为实现人工智能自我思考奠定基础...

文章来源:新民晚报图说:复旦类脑研究院 采访对象供图理解大脑的结构与功能是21世纪最具挑战性的前沿科学问题,谁揭开大脑运作的神秘面纱,谁就在重大脑疾病防治和全球智能产业革命中抢占了先机。利用磁共振成像技术观察大脑内部结构&#xff0…

linux system函数传参,Linux系统调用例程system_call和参数传递

系统调用接口调用“int $Ox8O”指令进入内核并准各了相关参数后,剩下的工作就由系统调用例程来进行。Linux定义的系统调用 例程的入口为system_call。下面具体介绍system_call所做的工作。system_call是用汇编语言编写的,在i386体系中&#x…

Sci-Hub重生了,这回用上了分布式网络

来源:Python开发者在网站域名屡次被撤销之后, Sci-Hub 创始人 Alexandra Elbakyan 在分布式域名网络 Handshake 上注册了新的网站。现在,每个用户都可以直接通过服务门户和 NextDNS 直接访问 Sci-Hub。NextDNS:https://learn.name…

Leetcode--24. 两两交换链表中的结点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 提交的代码: /** * Definition for sin…

linux db2备份,db2实现备份

db2实现备份/var/db2/db2inst1/sqllib/db2profile;dbbackpath/db2/db2inst1/1;dblogpath/db2/NODE0000;mv $dbbackpath/file/*.gz $dbbackpath/all;mv $dbbackpath/logs/*.gz $dbbackpath/all;mv $dbbackpath/logs/*.tar $dbbackpath/all;db2 backup db urp_rs online to $dbba…

Dede更新提示DedeTag Engine Create File False的解决办法

第一种情况:列表、频道、文章等命名规则未填写或填写错误 此种情况较为少见,因为初级用户一般不会去修改这些东西,情况可以大致分为: 命名规则未填写(即为空)解决方法:只需填好相应的规则即可&a…

超级人工智能何时能实现?

来源:赛先生制版编辑 :Morgan撰文:斯图尔特罗素(加州大学伯克利分校计算机科学家,人类兼容人工智能中心主任)01近未来1997年5月3日,IBM制造的国际象棋计算机“深蓝”和国际象棋世界冠军加里卡斯…

Ajax:异步js和xml

如果通过之前的转发,或者重定向,很多问题没法解决 比如我给某个视频点个赞,你经过转发或者重定向,最后虽然点赞成功了,但页面刷新了,视频从头开始放了。 异步刷新:如果网页某一个地方需要修改&…

linux cache buffer区别,Linux buffer/cache异同

buffers与cached1)、异同点在Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从磁盘读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写 数据时,操作系统先…

sql中join与left-join图解区别

select a.* from YG_BRSYK a left join(SELECT DISTINCT SYXH,STUFF((SELECT 、MS FROM #lsb where SYXHt.SYXH FOR XML PATH()),1,1,) AS MSFROM #lsb as t) c on a.SYXHc.SYXH WHERE c.MS IS NOT NULL order by RYBQ --注:left join...on 为左关联,保…

很遗憾,自然语言理解是AI尚未攻克的领域

来源: Venture Beat作者: Pieter Buteneers编译: 科技行者短短几年之内,深度学习算法得到了长足发展,不仅在棋类游戏中击败了全球最顶尖的选手,也能够以等同于、甚至超越人类的准确率识别人脸。但事实证明,人类语言仍是一项独特且…

分层结构,协议,接口,服务

发送文件前的工作: 1. 发起通信的计算机必须将数据通信的通路进行激活 2. 要告诉网络如何识别目的主机 3. 发起通信的计算机要查明目的主机是否开机,并且网络连接正常 4. 发起通信的计算机要清楚,对方计算机中文件管理程序是否做好准备工…

linux怎么抓sip包,Ubuntu下使用Wireshark进行抓包分析(含SIP和RTP包)

遇到需要在Linux下抓包分析的问题,便用到了wireshark,非常强大的抓包分析软件,直接在系统里面安装,然后使用明亮抓包即可!我这里用的是Ubuntuserver版,执行安装:1、apt-get install wireshark安装成功后使用…

jsp+javabean实现购物车

采用Model1(jspjavabean) 实现DBHelper类创建实体类创建业务逻辑类(dao) DBHelper类的设计package util;import java.sql.Connection; import java.sql.DriverManager;public class DBHelper {private static final String drive…

里程碑 | 原来大脑有两套GPS!陆军军医大学张生家团队发现海马外全新空间导航系统...

来源:iNature位置细胞,网格细胞,边界细胞和头部方向细胞的空间选择性激发是构成以海马-肠内复合体为中心的典型空间导航系统的基本构建块。虽然可以在整个大脑中找到头部方向细胞,但是海马结构外部的空间调节通常与其他表示形式&a…

php 流(Stream)

http://laravelacademy.org/post/7459.html转载于:https://www.cnblogs.com/cxscode/p/9373936.html

iar 连接linux开发板,LED裸机程序(IAR)

LED裸机程序(IAR)一、实验环境开发环境:IAR5.30开发板:UT-S3C6410开发工具:JLINK V8二、实验目的在无操作系统的开发板上,运行程序,掌握裸机程序的开发过程,熟悉IAR和JLINK的使用。三、实验步骤1、准备工作…

简易呼吸灯c语言程序,呼吸灯 - 单片机教程 - C语言网

1.双定时器呼吸灯实现呼吸灯的实现原理就是让小灯的IO端口在一段时间里PWM由大到小变化的占空比输出,接着又由小到大的占空比输出,小灯显示效果就是时亮时暗地交替闪烁。首先我们用定时器0定时0.1ms,全局变量pwm在其中断函数里执行简单的从0到…

Python学习---面向对象的学习[深入]

类的深入学习 a. Python中一切事物都是对象 b. class Foo: pass obj Foo() # obj是对象,Foo类 # Foo类也是一个对象,type的对象 c. 类都是type类的对象 type(..) “对象”都是以类的对象 类() d. 类实际上是type类型的对象,所有的…