公司資料庫伺服器的空間越來越緊張、最大的資料庫達到400個g,100g 以上的庫就有四五個。當然我們應該感到欣慰,資料高速增長說明我們的業務發展較好,但不可否認,我們的應用設計也存在著某些問題。諸如:濫建索引、過度冗餘或者是系統在設計時沒有考慮對超過價值期的歷史資料進行清理。
下面這個指令碼用來獲取資料庫每張表/索引的空間使用情況。
code
with
pa as
(select
p.object_id
,p.index_id,a.type_desc
aspagetype_desc,a.total_pages,a.used_pages,a.data_pages
from
sys.partitions p
join
sys.allocation_units a
onp.partition_id
=a.container_id
),indexes as(
select
object_id
,index_id,
object_name
(object_id
) as
tbname , name
asindexname,type_desc
astbtype_desc
from
sys.indexes
where
object_id
>
=100
),result as(
selecti.*
,p.pagetype_desc,p.total_pages,p.used_pages,p.data_pages
from
pa p
inner
join
indexes i
onp.
object_id=i.
object_id
andp.index_id
=i.index_id
)select
*from
result
order
bytotal_pages
desc
下面這個指令碼用以統計索引的使用率
code
declare
@dbid
intselect
@dbid
=db_id
()select
objectname
=object_name
(s.object_id
), s.
object_id
, indexname
=i.name, i.index_id
, user_seeks, user_scans, user_lookups, user_updates
from
sys.dm_db_index_usage_stats s,
sys.indexes i
where
database_id
=@dbid
andobjectproperty
(s.object_id,'
isusertable')
=1andi.
object_id=s.
object_id
andi.index_id
=s.index_id
order
by(user_seeks
+user_scans
+user_lookups
+user_updates)
asccreate view sys.dm_db_index_usage_stats as
select database_id, object_id, index_id,
user_seeks, user_scans, user_lookups, user_updates,
last_user_seek, last_user_scan, last_user_lookup, last_user_update,
system_seeks, system_scans, system_lookups, system_updates,
last_system_seek, last_system_scan, last_system_lookup, last_system_update
from openrowset(table logindexstats)
where status = 0
這個是sys.dm_db_index_usage_stats的定義
回覆引用
#6樓 2009-01-16 19:41 | keep walking
select b.name,a.* from sys.dm_db_index_usage_stats a inner join sysindexes b
on (a.object_id = b.id) order by a.user_seeks desc
這個還附帶了name,供樓主參考吧,刪除那些既不掃瞄也不查詢的索引即是
統計資料庫空間的使用情況
公司資料庫伺服器的空間越來越緊張 最大的資料庫達到400個g,100g 以上的庫就有四五個。當然我們應該感到欣慰,資料高速增長說明我們的業務發展較好,但不可否認,我們的應用設計也存在著某些問題。諸如 濫建索引 過度冗餘或者是系統在設計時沒有考慮對超過價值期的歷史資料進行清理。下面這個指令碼用來獲取資...
sybase 資料庫空間使用情況
1 檢視資料庫空間情況 sp spaceused sp spaceused syslogs 日誌空間 2 檢視資料庫裝置各段空間情況 sp helpsegment sp helpsegment index segment 索引剩餘空間 sp helpsegment system 系統剩餘空間 sp ...
表空間使用情況統計
表空間剩餘空間查詢,以system使用者身份登入或具有dba許可權的使用者執行 select tbs as 表空間名稱,sum totalm as 空間合計m,sum usedm as 已使用空間,sum remainedm as 剩餘空間m,sum usedm sum totalm 100 as ...