关于SQLServer2000占用空间的问题 -_-!!(100)

  • 主题发起人 主题发起人 dfoversky
  • 开始时间 开始时间
D

dfoversky

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库文件4个G其中有3.2G是未使用的空间。里面有个我存软件操作日志的表。这个表存储数据实际用了300M,但是未用空间达到了2.3G这个是不是和数据库自动按10%增长有关,改成按100M增长能行吗?
 
华拓数码(M&Y Data Solutions)成立于2001年,总部位于悉尼,是澳大利亚最大的离岸信息处理外包服务提供商,在澳大利亚和中国的信息处理领域处于遥遥领先的地位,享有卓著声誉。http://www.huatuodata.com.cn/项目经理:–本科及其以上学历 –计算机及相关专业 –3年及其以上IT从业经验 –至少参与2个20人以上的项目开发,至少成功实施2个以上项目,对项目管理有深刻的认识,对项目整体掌控,风险识别有足够的经验,有较强的沟通协调能力和团队领导能力 –有丰富的项目管理理论知识 •高级开发工程师 –大专及其以上 –28岁及其以上 –3年及其以上软件开发经验 –英语读写能力较强,可进行英文资料的翻译,有较强的沟通协调能力,有一定的项目管理意识 –有丰富的软件开发经验,至少熟练掌握两种以上开发语言,至少掌握两种以上中大型数据库系统,熟练掌握B/S和C/S开发模式 •初级开发工程师 –大专及其以上 –23岁及其以上 –1年及其以上工作经验 –计算机及相关专业毕业、了解软件开发知识 –掌握一门开发语言和数据库 请把简历发送到huatuo.hr@163.com电话:0459-6293511,13936913972,潘经理
 
其他的可能是日志文件占用的空间。频繁的操作数据库,但是没有进行数据的存储,就可能出现这样的情况。
 
1楼兄弟。。。。。。。。。。to 草原骏马 不是日志文件占用空间的,是数据文件里未用空间大。我用的这个脚本查询的:--查看各个表占用空间的大小if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)create table tablespaceinfo --创建结果存储表(nameinfo varchar(50) , rowsinfo int , reserved varchar(20) , datainfo varchar(20) , index_size varchar(20) , unused varchar(20) )delete from tablespaceinfo --清空数据表declare @tablename varchar(255) --表名称declare @cmdsql varchar(500)DECLARE Info_cursor CURSOR FOR select o.name from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1 and o.name not like N'#%%' order by o.nameOPEN Info_cursorFETCH NEXT FROM Info_cursor INTO @tablename WHILE @@FETCH_STATUS = 0BEGINif exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)execute sp_executesql N'insert into tablespaceinfo exec sp_spaceused @tbname',N'@tbname varchar(255)',@tbname = @tablenameFETCH NEXT FROM Info_cursor INTO @tablename ENDCLOSE Info_cursorDEALLOCATE Info_cursorGO--itlearner注:显示数据库信息sp_spaceused @updateusage = 'TRUE' --itlearner注:显示表信息select nameinfo as 表名,rowsinfo as 行数,reserved as 保留空间,datainfo as 数据大小 ,index_size as 索引大小,unused as 未用空间 from tablespaceinfo order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc
 
求解中。。。。。。。。。。。[:(]
 
不行,这就是正解
 
哪个是正解呢??
 
经常清一下日志,日志放久了就没用了
 
我说的日志表只是其中一个,其它表也有类似问题。未用空间很大。好像规律就是操作频繁的表,未用空间就很大。
 
回忆一下创建数据库的语句是这样写的:create database myDBon primary( name = 'myDatabase', filename = "Mydatabase_name", size = 100, maxsize = 1000, filegrowth = 20)log on( name = 'MyDB_log', filename ="logfile_name", size = 50MB, maxsize = 300MB, filegrowth = 10MB)你查看一下create database里面的帮助,看有没有修改filegrowth 项的语句?比如Alter database之类语言?如果没有那用管理器直接打开数据库,看界面上能不能直接修改filegrowth?
 
to 北京男人:你说的是数据库文件自动增长吧,我那个数据库是默认的按10%增长。设置一下按每次增加100M能行吗?
 
呵呵,和我前两天遇到的一样,当时我看了我的一个表,数据在索引只有600M,但使用空间居然有10G以上,未用空间也有10G,吓我一跳,后来看了一下帮助,说是你用sp_spaceused查到的记录并不是当前的情况,有可能会和实际不一样,应该先用dbcc……的一个函数先重新生成一下才行,然后再用spaceused才能得到比较真实的结果。后来我执行了一下,然后再查结果,未使用空间只有几十M了。具体那个函数我忘了,你看一下DBCC相关的函数吧。好象是DBCC UPDATEUSAGE。http://www.0wei.com/thread-29051-1-5.html上的说明:DBCC UPDATEUSAGE 报告和更正 sysindexes 表的不正确内容,该内容可能会导致通过 sp_spaceused 系统存储过程产生不正确的空间使用报表。
 
设置一下按每次增加100M能行吗不行
 
T0:楼上 能解决他所说的问题, 愿闻其详
 
数据库自动按10%增长或按100M增长都是可行的。只要有增长,都是可行的。设置增长数量是为了给数据库下次插入数据时预留空间。如果你的每次插入的数据量并不大,设置按10M增长也行。按百分比设置,到后期的增长是很可怕的,建议按M数设置。另外,存储过程,触发器、索引(填充因子)等都会占空间。日志可以定期打包另外备份起来,然后截断日志,使其不占空间。日志打包的压缩比很大,很方便保存。
 
数据库日志文件倒是没多大。就是表里的未用空间太大了。用 zbdzjx 告诉我的那个: DBCC UPDATEUSAGE 还是不行。显示的未用空间还是那么大。
 
收缩日志文件
 
-_-!!不是日志文件大。。。是数据文件里面未用空间大。感觉好像还剩很多空间呢。
 
你门是做什么的呀?好象是我家的数据库
 
后退
顶部