檢視資料庫、表、索引的物理儲存情況
在管理、維護資料庫時,經常需要檢視資料庫檔案、日誌檔案所占用的磁碟空間,以及磁碟還剩下的磁碟空間,你可以通過下面幾種方面檢視資料庫檔案詳細情況:
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值的情況,也...