在线求救:如何收缩数据库中未用的表空间
我的数据库现在已经达到16个G了,造成硬盘都已经装不下了.而用查询表占空间发现实际有12个多G的空间并未使用,求救高手如何把这些空间给回收了 
 如图数据库空间占用查询结果: 
 reserved               data                  index_size            unused 
 15655768KB         2646240kB      44656KB                  12964872KB 
 表占用空间查询结果: 
 nameinfo                           rowsinfo      reserved         datainfo               index_size            unused             
 jxc_qtxs200706	193509	1942712   KB	247048   KB	32   KB	1695632   KB 
 jxc_qtxs200705	192046	1939568   KB	256480   KB	24   KB	1683064   KB 
 jxc_qtxs200701	198112	1863640   KB	236008   KB	8   KB	1627624   KB 
 jxc_qtxs200702	205638	1738808   KB	227224   KB	16   KB	1511568   KB 
 jxc_qtxs200704	181069	1691704   KB	227048   KB	16   KB	1464640   KB 
 jxc_qtxs200708	126770	1656992   KB	209104   KB	32   KB	1447856   KB 
 sys_xtrz	27818	585800   KB	73288   KB	32   KB	512480   KB 
 js_jhdt	20490	413376   KB	52232   KB	32   KB	361112   KB 
 jxc_qtxs_ys	65937	409144   KB	54200   KB	32   KB	354912   KB 
 jxc_jhdt2007	8742	316200   KB	39512   KB	304   KB	276384   KB 
 jxc_wsdl	61568	284816   KB	37832   KB	3312   KB	243672   KB 
 jxc_yfzk2007	8609	260712   KB	32704   KB	32   KB	227976   KB   
------解决方案--------------------压缩数据库: 
 DBCC SHRINKDATABASE (数据库名)   
 压缩表: 
 DBCC UPDATEUSAGE ( '数据库名 ',  '表名 ',  '表主键 ') 
------解决方案--------------------你只要找到占用空间比较大的表进行压缩就可以了 
 并不需要压缩所有的表   
 查询每个表的使用空间:   
 -- 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   
------解决方案--------------------可以在企业管理器中用可视化工具中的数据库收缩命令就可以了。 
 估计是你的日志文件太大。
------解决方案--------------------这个问题我曾经也遇到过,就是怎么收缩都不管用.过那是SQL97版,具体解决办法是用将数据库增长限制,然后用一张大数据的临时表不断交换数据,重复使用该方法.日志文件会不断减少.