WEB开发网
开发学院数据库MSSQL Server 统计数据库空间的使用情况 阅读

统计数据库空间的使用情况

 2009-01-17 10:19:08 来源:WEB开发网   
核心提示:公司数据库服务器的空间越来越紧张、最大的数据库达到400个G,100G 以上的库就有四五个,当然我们应该感到欣慰,统计数据库空间的使用情况,数据高速增长说明我们的业务发展较好,但不可否认,我们的应用设计也存在着某些问题,诸如:滥建索引、过度冗余或者是系统在设计时没有考虑对超过价值期的历史数据进行清理

公司数据库服务器的空间越来越紧张、最大的数据库达到400个G,100G 以上的库就有四五个。当然我们应该感到欣慰,数据高速增长说明我们的业务发展较好,但不可否认,我们的应用设计也存在着某些问题。诸如:滥建索引、过度冗余或者是系统在设计时没有考虑对超过价值期的历史数据进行清理。

下面这个脚本用来获取数据库每张表/索引的空间使用情况。

with paas
(
SELECTp.object_id,p.index_id,a.type_descaspagetype_desc,a.total_pages,a.used_pages,a.data_pages
FROMsys.partitionspJOINsys.allocation_unitsa
 ONp.partition_id=a.container_id
),
indexesas
(
  selectobject_id,index_id,object_name(object_id)astbname,nameasindexname,type_descastbtype_desc
  fromsys.indexes
  whereobject_id>=100
),
resultas
(
selecti.*,p.pagetype_desc,p.total_pages,p.used_pages,p.data_pages
frompapinnerjoinindexesi
onp.object_id=i.object_idandp.index_id=i.index_id
)
select *fromresult orderbytotal_pagesdesc

下面这个脚本用以统计索引的使用率

declare@dbidint
select@dbid=db_id()
selectobjectname=object_name(s.object_id),s.object_id,indexname=i.name,i.index_id
,user_seeks,user_scans,user_lookups,user_updates
fromsys.dm_db_index_usage_statss,
sys.indexesi
wheredatabase_id=@dbidandobjectproperty(s.object_id,'IsUserTable')=1
andi.object_id=s.object_id
andi.index_id=s.index_id
orderby(user_seeks+user_scans+user_lookups+user_updates)asc

Tags:统计 数据库 空间

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接