在线求救:如何收缩数据库中未用的表空间 压缩数据库:DBCC SHRINKDATABASE (数据库名)压缩表:DBCC UPDATEUSAGE ('数据库名', '表名', '表主键') 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你只要找到占用空间比较大的表进行压缩就可以了并不需要压缩所有的表查询每个表的使用空间:-- drop table #tbcreate table #tb(表名 sysname,记录数 int,保留空间 varchar(10),使用空间 varchar(10) ,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''select * from #tborder by cast(left(使用空间,len(使用空间)-3) as numeric) --先备份数据库--截断事务日志backup log 数据库名 with no_loggo--收缩数据库dbcc shrinkdatabase(数据库名)go backup log 数据库名 with no_loggo--收缩数据库dbcc shrinkdatabase(数据库名)go按照这种方法已经处理过很多遍了,但是没有实际效果 这个问题我曾经也遇到过,就是怎么收缩都不管用.过那是SQL97版,具体解决办法是用将数据库增长限制,然后用一张大数据的临时表不断交换数据,重复使用该方法.日志文件会不断减少. 求一个sql语句 把一个表拆分成两个表 请教一个简单的SQL语句 大家指点迷津:exec sp_executesql 与WHERE从句筛选? 求一个语句,同一个tid把001和253合计比较那个金额大 这条SQL有什么问题呢? 一般在什么情况下用Print? 一道选择题 在sql2005里,相同的存储过程,第一次查询要31秒,第二次3秒 两张表怎么把符合条件的选出来,把买了服务的排在最前面,其实的排后面 SQL SERVER复制问题 满脸流泪跪求SQL挂起解决方案!!!急!!!
并不需要压缩所有的表查询每个表的使用空间:-- drop table #tb
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)
--先备份数据库--截断事务日志
backup log 数据库名 with no_log
go--收缩数据库
dbcc shrinkdatabase(数据库名)
go
go--收缩数据库
dbcc shrinkdatabase(数据库名)
go
按照这种方法已经处理过很多遍了,但是没有实际效果