統計資料庫空間的使用情況

2022-05-08 12:21:14 字數 2535 閱讀 2222

公司資料庫伺服器的空間越來越緊張、最大的資料庫達到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 ...