首页 > 数据库技术 > 详细

SQL Server 数据文件空间使用计算方法

时间:2014-03-23 12:57:33      阅读:394      评论:0      收藏:0      [点我收藏+]

按照区统计

dbcc showfilestats

  这个命令能直接从GAM和SGAM这样的系统分配页面上读取区分配信息,直接算出数据库文件里有多少区已被分配。在服务器负载很高的情况下也能安全执行,不会增加额外系统负责。

按照页面统计

sp_spaceused

  根据sys.allocation_units和sys.partitions这两个管理视图来计算存储空间。可以指定updateusage这个参数,要求SQL Server更新管理视图里的统计信息,这是一件消耗资源的工作。

通过查询sys.dm_db_partitions_stats查询数据库所有对象

select
 o.name,
 sum(p.reserved_page_count) as reserved_page_count,
 sum(p.used_page_count) as used_page_count,
 sum(
  case
   when (p.index_id < 2) then (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
  end
  )as dataPages,
 sum(
  case
   when (p.index_id < 2 ) then row_count
   else 0
  end
  )as rowCounts
from sys.dm_db_partition_stats p inner join sys.objects o On p.object_id = o.object_id
group by o.name

 DBCC ShowContig和sys.dm_db_index_physical_stats

  是检查数据空间分配情况最精确的该当,它可以告诉你某张表(或索引)用了多少页面,多少区,甚至页面上平均数据量,这种方式在数据库处于工作高峰时应避免使用。

命令 精确单位 性能影响 准确性
DBCC ShowFileStats 基本准确
sp_spaceused 有时不准确
sp_spaceused + updateusage 稍有 基本准确
sys.dm_db_partition_stats 有时不准确
dbcc showcontig 页/区 准确

SQL Server 数据文件空间使用计算方法,布布扣,bubuko.com

SQL Server 数据文件空间使用计算方法

原文:http://www.cnblogs.com/mich1234/p/3618855.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!