程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 統計數據庫空間的使用情況

統計數據庫空間的使用情況

編輯:關於SqlServer

  公司數據庫服務器的空間越來越緊張、最大的數據庫達到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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved