sql server查看表大小


查看SqlServer 數據庫中各個表多少行 :

SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WHERE A.xtype = 'U' AND B.indid IN(0,1) ORDER BY B.ROWS DESC

 

數據庫磁盤占用量:

select name, CAST(convert(float,size) * (8192.0/1024.0)/1024 AS nvarchar)+'MB' AS CP from CDR.dbo.sysfiles
where name = 'CDR'

==================================

以下是sp_spaceused和sp_MSforeachtable具體的使用示例: 

exec sp_spaceused '表名'            (查詢表所占空間) 
exec sp_spaceused '表名', true       (更新表的空間大小,准確的表空大小) 
exec sp_spaceused                    (數據庫大小查詢) 
exec sp_MSforeachtable "exec sp_spaceused '?'"     (所有用戶表空間表小,SQL統計數據,,大量事務操作后可能不准) 
exec sp_MSforeachtable "exec sp_spaceused '?',true"    (所有用戶表空間表小,大數據庫慎用)
 

====================詳細版============================

做一個項目,第一件事情就是問:“這個數據庫多大?”

下面是統計數據庫數據量大小的方法

 

通常我們會使用命令: "sp_helpdb @dbname"

例如,查詢數據庫"testdb3"的使用量

 

exec sp_helpdb testdb3

  "sp_helpdb"是最常用的命令,

 

   但是注意:該命令顯示的數據庫大小"db_size"並不是指現存有效數據的大小,而是指:數據庫物理文件 “數據文件大小 + 日志文件大小”的總和

   例如上例中,數據庫"testdb3"對應的數據文件和日志文件:

 

  218.112 + 916.352 = 1107.88MB

  

  數據庫創始之初,數據文件和日志文件的初始大小都是默認的2M或3M

  當插入數據后,數據文件和日志文件的大小會隨着數據量的增長而增長

  但是當刪除數據的時候,會發生什么情況呢? 

  數據文件、日志文件會變小么?不會的,還是保持原來的大小

 

怎樣獲取有效數據的大小?

答案是使用"sp_spaceused"存儲過程分別統計每張表的數據量

1)  統計單個表的使用空間

 

exec sp_spaceused 'dbo.t1'


 

2) 統計每個表的使用空間

 

exec sp_MSforeachtable "exec sp_spaceused '?'"

---------------------
版權聲明:本文為CSDN博主「Architect_csdn」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/architect_csdn/article/details/89223308


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM