sqlserver数据库压缩

[复制链接]
查看11 | 回复9 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
sqlserver 数据库越来越大了;
我想到两个方法变小:
1.清除日志,现在的日志模式是标准模式,日志每天都在变大,没有任何使它变小的机制;以前使用的是简单日志模式,只有1M多,但是怕不安全;所有修改成标准模式;但是日志就这么一天天的涨下去,也不是好事,我想过几个月就用命令清除一下日志,不知道这样做是不是对数据库运行有好处,提高IO等运行效率;
2.压缩dbf数据库文件,类似access那样,压缩一下,可能让数据库变小;这样是不是也会提高数据库效率;
不知道mssql的数据库压缩,是不是类似oracle的hwm高水位问题的解决;
[ 本帖最后由 qingyun 于 2010-11-16 12:12 编辑 ]
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
在sqlserver里,
写 select * from t [NOLOCK] ; 表示查询的时候不会锁表,哪怕某个事务提交中,照读不误(可能读到脏数据);
有的时候,为了效率,确实需要加上[NOLOCK];
但是多表关联,这样写,是不是也会达到不锁表的效果呢?
select * from( select a.f1,b.f2 froma ,b where a.f3=b.f3 ) [NOLOCK]
这种写法和
select * from( select a.f1,b.f2 froma[NOLOCK] ,b[NOLOCK] where a.f3=b.f3 )
效果是不是一致?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
建议去读多点资料,答案就出来了。。这样测试的方法和结果太多
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
如果诚心回答问题,最好给点实质性的东西,要么就不要回答;
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
每天全备份之后,接着就备份一下日志,这样日志会截断重复利用
backup log dbname with no_log;
甚至可以收缩一下日志:
dbcc shrinkfile(2,200)
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
1、选择合理的备份策略,日志备份与完整备份结合。
限制日志空间,以防止无限的增大。
2、数据库本来就有压缩功能。适当的清理碎片。


select * from( select a.f1,b.f2 froma ,b where a.f3=b.f3 ) [NOLOCK] --此处的[NOLOCK] 是一个表名。 嵌套表是没有WITHNOLOCK的概念的
select * from( select a.f1,b.f2 fromaWITH(NOLOCK),b(NOLOCK) where a.f3=b.f3 )

效果应该是不一样的。你以看执行计划。 nolock用()才有效。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
查看oracle的执行计划倒是很方便;
用一下脚本实现:
--1.删除旧的执行计划内容
DELETE FROM PLAN_TABLE WHERE STATEMENT_ID = 'QINGYUN' --这里的'QINGYUN'其实可以为自己定义的任意字符串
--2.生成执行计划,实际上就是往PLAN_TABLE$里插入数据(PLAN_TABLE是同义词)
EXPLAIN PLAN SET STATEMENT_ID ='QINGYUN' INTO PLAN_TABLE FOR 需要检测的SQL语句;
--显示执行计划
SELECT*FROM PLAN_TABLE WHERE STATEMENT_ID = 'QINGYUN' ORDER BY ID, PARENT_ID, POSITION
不知道mssql 如何实现, 我喜欢自由一点,或者说更本质一点,自己使用最原始的脚本看数据;
而mssql好像必须使用它的集成工具才能看,看似傻瓜化;可是太不灵活;
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
如果你定时的对数据库进行完整的备份(例如每天备份),就可以尝试删除LDF文件。
分离数据库,将LDF文件删除(或者改名后剪切到别处也行)。
再用MDF文件附加数据库,出现一个提示框,确定,即可...
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
对日志进行截断,定期清理日志
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
你用过SQL2008吗?里面提供行压缩和列压缩,还有提供备份压缩。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行