楼主是用sql server2000还是sql server2005? 这种最好不要限制数据库空间的大小,尽量把数据数据放在大硬盘上,当数据库大到一定程序的时候,肯定要做数据清理,删除或转移历史数据,删除大表数据,否则数据查询会非常慢,有可能导致一些用户的页面打不开或动不了 查看大表使用空间: create table #tb(表名 sysname,记录数 int ,保留空间 varchar(10),使用空间 varchar(10) ,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''select * from #tb order by cast(left(使用空间,len(使用空间)-3) as numeric) descgo drop table #tb数据整理完后,选择一个数据库比较休闲时间(如晚上),做一下数据库收缩. use master DBCC SHRINKDATABASE (数据库名)
1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)
这种最好不要限制数据库空间的大小,尽量把数据数据放在大硬盘上,当数据库大到一定程序的时候,肯定要做数据清理,删除或转移历史数据,删除大表数据,否则数据查询会非常慢,有可能导致一些用户的页面打不开或动不了
查看大表使用空间:
create table #tb(表名 sysname,记录数 int
,保留空间 varchar(10),使用空间 varchar(10)
,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''select * from #tb
order by cast(left(使用空间,len(使用空间)-3) as numeric)
descgo
drop table #tb数据整理完后,选择一个数据库比较休闲时间(如晚上),做一下数据库收缩.
use master
DBCC SHRINKDATABASE (数据库名)
DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
检查你的数据库文件大小限制,
检查文件属性是否只读,尝试增加一个文件组或者文件试试,
尝试收缩或者压缩对应的数据文件,日志文件,
---------------
如果以上方式不行的话,
建议LZ先导出数据,
然后重新建立数据库,作为多文件组多文件方式存储.
在导入数据.