查看数据库、表、索引的物理存储情况
?
3: 通過SQL命令、腳本查看。?
??3.1: sys.database_files 視圖中保存著數(shù)據(jù)庫文件(數(shù)據(jù)文件、日志文件)等的詳細信息?
?SELECT?*?FROM?sys.database_files--通過下面命令,查看系統(tǒng)各磁盤可使用空間。
EXEC?master..xp_fixeddrives
?
?
當然你也可以用下面腳本只查看數(shù)據(jù)文件,日志文件大小。?
?
代碼SELECT??SUM(SIZE)?*?8.0?/?1024???AS?[FileSize(MB)]?,????????
????????CASE?type
??????????WHEN?0?THEN?'DataBaseFileSize'
??????????WHEN?1?THEN?'DataBaseLogSzie'
????????END?AS?Type
FROM????sys.database_files
GROUP?BY?type
?
?
?不過在刪除或重新生成大型索引時,或者在刪除或截斷大型表時,數(shù)據(jù)引擎將延遲實際頁釋放以及關(guān)聯(lián)鎖,直至事物提交完畢為止。延遲的刪除操作不會立即釋放已分配的空間。因此,在刪除或截斷大型對象后,立即查詢sys.database_files得到的數(shù)據(jù)可能沒有反應(yīng)實際可以用的磁盤空間。(具體可以看看MSDN)。
?
3.2 ?使用系統(tǒng)存儲過程SP_HELPDB?
?
EXEC?SP_HELPDB?'MyAssistant'??
?
?3.3 系統(tǒng)存儲過程SP_SPACEUSED:
?SP_SPACEUSED它顯示行數(shù)、保留的磁盤空間以及當前數(shù)據(jù)庫中的表、索引視圖或 SQL Server 2005 Service Broker隊列所使用的磁盤空間,或顯示由整個數(shù)據(jù)庫保留和使用的磁盤空間
EXEC?SP_SPACEUSED?
?
?
有時候你是不是想看看數(shù)據(jù)庫里面的表、索引使用的磁盤空間情況,那么也有下面幾種方法供你參考。
1:選擇你要查看的表單擊右鍵,選擇屬性,你就可以看到表、索引空間使用情況。?
2:還是使用系統(tǒng)存儲過程SP_SPACEUSED
EXEC?SP_SPACEUSED?'bto_back_user'?
3:通過系統(tǒng)視圖sysindexes來計算表以及它的索引所占的磁盤空間等情況,下表是它包含的字段詳細說明
| name | sysname | 列名或過程參數(shù)的名稱。 |
| id | int | 此列所屬表的對象 ID,或者與此參數(shù)關(guān)聯(lián)的存儲過程的 ID。 |
| xtype | tinyint | sys.types 中的物理存儲類型。 |
| typestat | tinyint | 僅限內(nèi)部使用。 |
| xusertype | smallint | 擴展的用戶定義數(shù)據(jù)類型的 ID。如果數(shù)據(jù)類型數(shù)超過 32767,則會發(fā)生溢出或返回 NULL。有關(guān)詳細信息,請參閱查詢 SQL Server 系統(tǒng)目錄。 |
| length | smallint | sys.types 中的最大物理存儲長度。 |
| xprec | tinyint | 僅限內(nèi)部使用。 |
| xscale | tinyint | 僅限內(nèi)部使用。 |
| colid | smallint | 列 ID 或參數(shù) ID。 |
| xoffset | smallint | 僅限內(nèi)部使用。 |
| bitpos | tinyint | 僅限內(nèi)部使用。 |
| reserved | tinyint | 僅限內(nèi)部使用。 |
| colstat | smallint | 僅限內(nèi)部使用。 |
| cdefault | int | 此列的默認值的 ID。 |
| domain | int | 此列的規(guī)則或 CHECK 約束的 ID。 |
| number | smallint | 過程分組時的子過程號。 0 = 非過程項 |
| colorder | smallint | 僅限內(nèi)部使用。 |
| autoval | varbinary(8000) | 僅限內(nèi)部使用。 |
| offset | smallint | 此列所在行的偏移量。 |
| collationid | int | 列的排序規(guī)則的 ID。對于非字符列,此值為 NULL。 |
| status | tinyint | 用于說明列或參數(shù)的屬性的位圖: 0x08 = 列允許空值。 0x10 = 添加 varchar 或 varbinary 列時,執(zhí)行 ANSI 填充。保留 varchar 列的尾隨空格以及 varbinary 列的尾隨零。 0x40 = 參數(shù)為 OUTPUT 參數(shù)。 0x80 = 列為標識列。 |
| type | tinyint | sys.types 中的物理存儲類型。 |
| usertype | smallint | sys.types 中的用戶定義數(shù)據(jù)類型的 ID。如果數(shù)據(jù)類型數(shù)超過 32767,則會發(fā)生溢出或返回 NULL。有關(guān)詳細信息,請參閱查詢 SQL Server 系統(tǒng)目錄。 |
| printfmt | varchar(255) | 僅限內(nèi)部使用。 |
| prec | smallint | 此列的精度級別。 -1 = xml 或大值類型。 |
| scale | int | 此列的小數(shù)位數(shù)。 NULL = 數(shù)據(jù)類型不是數(shù)值。 |
| iscomputed | int | 指示列是否為計算列的標志: 0 = 非計算列。 1 = 計算列。 |
| isoutparam | int | 指示過程參數(shù)是否為輸出參數(shù): 1 = True 0 = False |
| isnullable | int | 指示列是否允許空值: 1 = True 0 = False |
| collation | sysname | 列的排序規(guī)則的名稱。如果不是基于字符的列,則為 NULL。 |
????????rowcnt??AS?ROWS,
????????reserved?*?8.0?AS?Reserved?,
????????dpages?*?8.0?AS?USED?,
????????(used?-?dpages)*?8.0??AS?index_size,
????????(?reserved?-?used?)?*?8.0?AS?Unused?
FROM????sysindexes
WHERE???indid?=?1
????????AND?OBJECT_NAME(id)?=?'users'
ORDER?BY?reserved?DESC
EXEC?SP_SPACEUSED?'users'
?
?
對比看看兩者下圖的執(zhí)行結(jié)果吧
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/kerrycode/archive/2010/09/13/1824481.html
總結(jié)
以上是生活随笔為你收集整理的查看数据库、表、索引的物理存储情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比较两个引用的几种方法
- 下一篇: linux cmake编译源码,linu