日期:2014-05-17  浏览次数:20706 次

通过 sp_spaceused 显示行数 精确吗
通过 sp_spaceused 显示行数 精确吗?


最多在2次检查点不准,对吗

------解决方案--------------------
就是两次,你执行一次就知道了,比如:
第一次:
database_name database_size unallocated space
MEDICSCA_20xx 1886.13 MB 33.28 MB

第二次:
reserved data index_size unused
44512 KB 41792 KB 1568 KB 1152 KB
------解决方案--------------------
不一定精确,如果要精确的话首先执行DBCC UPDATEUSAGE

关于DBCC UPDATEUSAGE的解释:报告目录视图中的页数和行数错误并进行更正。  这些错误可能导致 sp_spaceused 系统存储过程返回不正确的空间使用报告。
------解决方案--------------------
在删除或重新生成大型索引时,或者在删除或截断大型表时,数据库引擎将延迟实际页释放及其关联锁,直至事务提交完毕为止。  延迟的删除操作不会立即释放已分配的空间。 因此,删除或截断一个大型对象后 sp_spaceused 随即返回的值可能不会影响可用的实际磁盘空间。 
------解决方案--------------------
不准确,如果2008的话,2005我不清楚,可以查询sys.partitions表,还没装上sql server,不知道表名有没有打错
------解决方案--------------------
不一定精确,可以这样查..

select a.rowcnt 
 from sys.sysindexes a
 inner join sys.tables b on a.id=b.[object_id]
 where a.indid<=1 and b.name='[表名]'