导航:首页 > 文件处理 > sql2005数据库压缩

sql2005数据库压缩

发布时间:2025-06-16 02:57:06

⑴ MSSQL数据库日志的压缩与清除技巧


一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大:
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器--双击打开数据库目录--选择你的数据库名称(如论坛数据库Forum)--然后点击右键选择属性--选择选项--在故障橘罩答还原的模式中选择"简单",然后按确定保存。
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用闷册调整,直接点确定。
3、收缩数据库圆慧完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据。
方法二
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE
tablename
-- 要操作的数据库名
SELECT@LogicalFileName = 'tablename_log',-- 日志文件名
@MaxMinutes = 10,
-- Limit on time allowed to wrap log.
@NewSize = 1
-- 你想设定的日志文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter
INT,
@StartTime DATETIME,
@TruncLogVARCHAR(255)
SELECT@StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE
@MaxMinutes
DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024)
@NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE((@Counter
@OriginalSize / 16) AND (@Counter
50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF

⑵ SQL数据库如何压缩

可以使用DBCC
SHRINKDATABASE
和DBCC
SHRINKFILE
命令来压缩数据库。
其中DBCC
SHRINKDATABASE
命令对数据库进行压缩,DBCC
SHRINKFILE
命令对数据库中指定的文件进行压缩。
DBCC
SHRINKDATABASE
命令语法如下:
DBCC
SHRINKDATABASE
(database_name
[,
target_percent]
[,
{NOTRUNCATE
|
TRUNCATEONLY}]
)
各参数说明如下:
target_percent:
指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
NOTRUECATE:
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统
,如果不选择此选项,则剩余的空间返还给操作系统。
TRUNCATEONLY

将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL
Server
将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent
选项就无效了。

⑶ SQL数据库如何压缩

1、首先从开始菜单着手,打开开始菜单栏,在菜单栏上找到我们已经安装的SQL server 2008,单击打开它。

⑷ 求助:SQL压缩数据库语句

1.清空日志
DUMP TRANSACTION ABCD WITH NO_LOG

2.截断事务日志:
BACKUP LOG ABCD WITH NO_LOG
--收缩数据库
DBCC SHRINKDATABASE(ABCD)

⑸ sql server 数据库怎样压缩数据库日志文件

SQL Server数据库压缩日志文件的方法主要有三种。方法一:首先执行备份日志操作,使用backup log database_name with no_log或backup log database_name with truncate_only命令。然后收缩数据库文件,可以使用dbcc shrinkdatabase或dbcc shrinkfile命令,前者适用于收缩整个数据库文件,后者适用于收缩特定文件,参数notruncate或truncateonly具体含义需参阅在线帮助。

方法二:首先备份整个数据库以防意外,执行exec sp_detach_db yourDBName,true命令卸除数据库注册信息。接着到日志文件所在目录删除或移除日志文件。然后执行exec sp_attach_single_file_db yourDBName,' d:\mssql\data\yourDBName_data.mdf '命令重新注册数据库,MSSQL会自动生成一个新的500K日志文件。

方法三:使用企业管理器工具,首先分离数据库,然后删除日志文件,如果需要可以备份。最后重新附加数据库,此时数据库会提示是否创建新的日志文件,确认即可。此外,如果希望以后日志文件不再增长,可以将数据库恢复模式设置为简单模型。在SQL Server 2000中,可以在数据库属性中选择简单恢复模式,或者使用SQL语句alter database 数据库名 set recovery simple来实现。

通过以上三种方法,可以有效地压缩SQL Server数据库的日志文件,从而释放空间和提高性能。

阅读全文

与sql2005数据库压缩相关的资料

热点内容
linux退出日志命令 浏览:422
vivo手机加密了怎么找回来 浏览:215
什么app车主最好 浏览:30
针织厂电脑提花程序员需要学什么 浏览:779
考二级可以在手机下载什么app 浏览:241
圆的体积算法图解 浏览:127
wpsppt转为pdf 浏览:764
python怎么连接画图 浏览:948
程序员总结思路 浏览:406
php追加写入txt 浏览:580
python机器编程字典 浏览:898
linux下启动oracle命令 浏览:137
python中list去重复 浏览:848
安卓9如何打开大容量存储模式 浏览:866
sci编译教学 浏览:924
python序列英文 浏览:505
如何用内网ip访问服务器 浏览:53
浙江网络授时服务器云主机 浏览:442
苹果为什么要换电池安卓可以不用 浏览:949
python滚动日志 浏览:371