檢視資料庫 表 索引的物理儲存情況

2021-09-30 06:42:37 字數 3952 閱讀 8927

檢視資料庫、表、索引的物理儲存情況

在管理、維護資料庫時,經常需要檢視資料庫檔案、日誌檔案所占用的磁碟空間,以及磁碟還剩下的磁碟空間,你可以通過下面幾種方面檢視資料庫檔案詳細情況:

1: 是通過遠端連線(或vpn)連線到資料庫伺服器,直接去檢視。

2: 你連線到資料庫後,可以通過mssms管理器,選擇要檢視的資料庫,單擊右鍵選擇屬性。然後選擇檔案選項,如下圖所示。

3: 通過sql命令、指令碼檢視。

3.1: sys.database_files 檢視中儲存著資料庫檔案(資料檔案、日誌檔案)等的詳細資訊 

select * from sys.database_files

--通過下面命令,檢視系統各磁碟可使用空間。

當然你也可以用下面指令碼只檢視資料檔案,日誌檔案大小。 

select

sum(size) 

*8.0

/1024as[

filesize(mb)

],        

case

type

when

0then

'databasefilesize

'when

1then

'databaselogszie

'end

astype

from

sys.database_files

group

bytype

3.2  使用系統儲存過程sp_helpdb 

exec

sp_helpdb 

' myassistant

'  

3.3 系統儲存過程sp_spaceused:

sp_spaceused它顯示行數、保留的磁碟空間以及當前資料庫中的表、索引檢視或 sql server 2005 service broker 佇列所使用的磁碟空間,或顯示由整個資料庫保留和使用的磁碟空間

exec

sp_spaceused

有時候你是不是想看看資料庫裡面的表、索引使用的磁碟空間情況,那麼也有下面幾種方法供你參考。

1:選擇你要檢視的表單擊右鍵,選擇屬性,你就可以看到表、索引空間使用情況。 

2:還是使用系統儲存過程sp_spaceused

exec

sp_spaceused 

' bto_back_user

'

3:通過系統檢視sysindexes來計算表以及它的索引所佔的磁碟空間等情況,下表是它包含的字段詳細說明

列名資料型別

說明name

sysname

列名或過程引數的名稱。

idint

此列所屬表的物件 id,或者與此引數關聯的儲存過程的 id。

xtype

tinyint

sys.types 中的物理儲存型別。

typestat

tinyint

僅限內部使用。

xusertype

smallint

擴充套件的使用者定義資料型別的 id。如果資料型別數超過 32767,則會發生溢位或返回 null。有關詳細資訊,請參閱查詢 sql server 系統目錄。

length

smallint

sys.types 中的最大物理儲存長度。

xprec

tinyint

僅限內部使用。

xscale

tinyint

僅限內部使用。

colid

smallint

列 id 或引數 id。

xoffset

smallint

僅限內部使用。

bitpos

tinyint

僅限內部使用。

reserved

tinyint

僅限內部使用。

colstat

smallint

僅限內部使用。

cdefault

int此列的預設值的 id。

domain

int此列的規則或 check 約束的 id。

number

smallint

過程分組時的子過程號。

0 = 非過程項

colorder

smallint

僅限內部使用。

autoval

varbinary(8000)

僅限內部使用。

offset

smallint

此列所在行的偏移量。

collationid

int列的排序規則的 id。對於非字元列,此值為 null。

status

tinyint

用於說明列或引數的屬性的點陣圖:

0x08 = 列允許空值。

0x10 = 新增 varchar 或 varbinary 列時,執行 ansi 填充。保留 varchar 列的尾隨空格以及 varbinary 列的尾隨零。

0x40 = 引數為 output 引數。

0x80 = 列為標識列。

type

tinyint

sys.types 中的物理儲存型別。

usertype

smallint

sys.types 中的使用者定義資料型別的 id。如果資料型別數超過 32767,則會發生溢位或返回 null。有關詳細資訊,請參閱查詢 sql server 系統目錄。

printfmt

varchar(255)

僅限內部使用。

prec

smallint

此列的精度級別。

-1 = xml 或大值型別。

scale

int此列的小數字數。

null = 資料型別不是數值。

iscomputed

int指示列是否為計算列的標誌:

0 = 非計算列。

1 = 計算列。

isoutparam

int指示過程引數是否為輸出引數:

1 = true

0 = false

isnullable

int指示列是否允許空值:

1 = true

0 = false

collation

sysname

列的排序規則的名稱。如果不是基於字元的列,則為 null。

檢視當前資料庫情況

正在執行的 select a.username,a.sid,b.sql text,b.sql fulltext from v session a,v sqlarea b where a.sql address b.address 執行過的 select b.sql text,b.first load...

資料庫索引失效情況

索引失效 1.建立了單字段索引,where條件內多個字段alter table test add index test index name using btree select from test where name test and 02.建立聯合索引,where條件單個字段alter tab...

資料庫索引失效的情況

1 列與列之間的對比比如一張表中的兩列 id和c id 都單獨建立了索引,但是下面這種情況不會走索引 select from table where id c id 這種情況會被認為還不如走全表掃瞄2 存在null值我們在設計資料庫時盡量避免null值的出現,如果不可避免地要出現null值的情況,也...