当前位置: 澳门新濠3559 > 数据库 > 正文

1、查询各个磁盘分区的剩余空间,只好压缩下数

时间:2019-11-22 23:13来源:数据库
MSSQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大。一般都是数据库日志引起的!数据库日志的增长可以达到好几百M。网上的MSSQL虚拟主机价

MSSQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大。一般都是数据库日志引起的!数据库日志的增长可以达到好几百M。 网上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库日志,或者删除数据库日志。 下面我给大家介绍一个方法 1、打开企业管理器 2、打开要处理的数据库 3、点击菜单>工具>SQL查询分析器 4、在输入窗口里面输入:复制代码 代码如下:DUMPTRANSACTION[数据库名]WITHNO_1、查询各个磁盘分区的剩余空间,只好压缩下数据库日志。LOG BACKUPLOG[数据库名]WITHNO_LOG DBCCSHRINKDATABASE点击执行!这样子数据库就操作成功了。 程序里面的方法: 压缩数据库日志 --1.清空日志 exec('DUMPTRANSACTION['+@dbname+']WITHNO_LOG') --2.截断事务日志: exec('BACKUPLOG['+@dbname+']WITHNO_LOG') --3.收缩数据库文件(如果不压缩,数据库的文件不会减小 exec('DBCCSHRINKDATABASE

一、查询磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:
1、查询各个磁盘分区的剩余空间:
        Exec master.dbo.xp_fixeddrives  

2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)   
     select * from [数据库名]澳门新濠3559,.[dbo].[sysfiles]
     转换文件大小单位为MB:
    select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles

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

4、查询数据库服务器各数据库日志文件的大小及利用率
    DBCC SQLPERF(LOGSPACE)

 

二、发现我们的数据库日志满了,如何清理日志。

方法1:

澳门新濠3559 1澳门新濠3559 2代码

DECLARE @dbname NVARCHAR(50)
SET @dbname='DNN50'
--1.清空日志
exec('DUMP TRANSACTION ['+@dbname+'] WITH NO_LOG')
--2.截断事务日志:
exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG')
--3.收缩数据库文件(如果不压缩,数据库的文件不会减小
exec('DBCC SHRINKDATABASE(['+@dbname+'])')
--4.设置自动收缩
exec('EXEC sp_dboption '''+@dbname+''',''autoshrink'',''TRUE''')

 方法2
第一步:
先备份整个数据库以备不测
第二步:
备份结束后,在Query Analyzer中执行如下的语句:
exec sp_detach_db yourDBName,true --卸除这个DB在MSSQL中的注册信息
第三步:
到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
第四步:
在Query Analyzer中执行如下的语句:
exec sp_attach_single_file_db yourDBName,'d:mssql7datayourDBName_data.mdf'
--以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。

编辑:数据库 本文来源:1、查询各个磁盘分区的剩余空间,只好压缩下数

关键词: