博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
收缩数据库
阅读量:4210 次
发布时间:2019-05-26

本文共 1641 字,大约阅读时间需要 5 分钟。

收缩数据库 

一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 

开sqlserver2008,找到你的数据库,右键-》任务-》收缩-》选择收缩数据库,不要选择收缩文件。然后执行完就可以了。会把空间还给操作系统的
注意此操作是在所有用户都未进行数据库操作同时进行了数据库备份的情况下操作。
一、    进入企业管理器,在相应的数据库上点右键
二、找到选项,恢复模式改为简单
三、在刚才设置的数据库上点右键选择收缩数据库
四、收缩完毕后查看效果
日志已经从100多兆收缩为1m了
五、收缩完毕后记住改为完整模式

在MS Sql Server中可通过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:

1、查询各个磁盘分区的剩余空间: 

Exec master.dbo.xp_fixeddrives;

2、查询数据库中的所有数据库名: 

SELECT Name FROM Master..SysDatabases ORDER BY Name;

3、查询某个数据库中所有的表名: 

SELECT name FROM SysObjects Where XType=’U’ ORDER BY Name;

4、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等) 

select * from [数据库名].[dbo].[sysfiles]; 
转换文件大小单位为MB: 
select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles;

5、查询当前数据库的磁盘使用情况: 

Exec sp_spaceused; 
exec sp_spaceused ‘表名’; –取得表占用空間

6、查询数据库服务器各数据库日志文件的大小及利用率 

DBCC SQLPERF(LOGSPACE);

----------------------------------------------------------------

总结:
完整的收缩日志文件的 T-SQL 语句:
BACKUP LOG xxdb to disk='x:\work\1.bak'
DBCC SHRINKFILE (xxdb_log,10)
GO
--
BACKUP LOG <db_name> to disk=<'backupfilename'>
DBCC SHRINKFILE (<log_filename>,10)
GO
里面的x:\work是随意设置的。当然也可以收缩到比如5M或1M。

7、收缩数据库日志文件(sql server2005) 
backup log [数据库名] with no_log 
DBCC SHRINKDATABASE(N’[数据库名]’, 15, TRUNCATEONLY)

8、收缩数据库日志文件(sql server2008) 

USE[master] 
GO 
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT 
GO 
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE –简单模式 
GO 
USE [数据库名] 
GO 
DBCC SHRINKFILE (N’[数据库名]_Log’ , 11, TRUNCATEONLY) 
DBCCSHRINKFILE(N'YHDB_log', 11,TRUNCATEONLY)
GO 
USE[master] 
GO 
ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT 
GO 
ALTER DATABASE [数据库名] SET RECOVERY FULL –还原为完全模式 
GO

转载地址:http://yzrli.baihongyu.com/

你可能感兴趣的文章
不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
查看>>
腾讯物联网操作系统TencentOS tiny线上移植大赛,王者机器人、QQ公仔、定制开发板等礼品等你来拿 !
查看>>
为云而生,腾讯云服务器操作系统TencentOS内核正式开源
查看>>
腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
查看>>
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>
在中国提供了60亿次服务的疫情模块向世界开源
查看>>
世界卫生组织与腾讯加深合作 新冠肺炎AI自查助手全球开源
查看>>
Hibernate 中get, load 区别
查看>>
java反射详解
查看>>
JPA 注解
查看>>
JQuery 简介
查看>>
Java创建对象的方法
查看>>
Extjs自定义组件
查看>>
TreeGrid 异步加载节点
查看>>
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>
材料与工程学科相关软件
查看>>
MPI的人怎么用仪器
查看>>