SQL SERVER 2012查詢資料庫和所有表的大小方法彙總
檢視某個庫和某張表的大小:
# sqlcmd -S 192.168.0.1 -U SA -P 'XXXXXXX'
1> use test
2> go
已將資料庫上下文更改為 'test'。
1> EXEC sp_spaceused
2> go
database_name database_size unallocated space
-------------------------------------------------------------------------------------------------------------------------------- ------------------ ------------------
test 358392.19 MB 61140.89 MB
reserved data index_size unused
------------------ ------------------ ------------------ ------------------
303655216 KB 151521704 KB 150348640 KB 1784872 KB
1>
2>
3>
4>
5> EXEC sp_spaceused 'owe_test';
6> go
name rows reserved data index_size unused
-------------------------------------------------------------------------------------------------------------------------------- -------------------- ------------------ ------------------ ------------------ ------------------
owe_test 23044925 90553168 KB 28877832 KB 61365144 KB 310192 KB
1>
查詢test資料庫中的所有表的大小
方法1:
use test
將資料庫上下文更改為 'test'。
CREATE PROCEDURE [dbo].[sp_UpdateTableSpaceInfo]
AS
BEGIN
--查詢是否存在結果儲存表
IF NOT EXISTS (SELECT * FROM sysobjects where id = OBJECT_ID(N'temp_tableSpaceInfo') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
--不存在則建立
CREATE TABLE temp_tableSpaceInfo
(name NVARCHAR(128),
rows char(11),
reserved VARCHAR(18),
data VARCHAR(18),
index_size VARCHAR(18),
unused VARCHAR(18))
END
--清空資料表
DELETE FROM temp_tableSpaceInfo
--定義臨時變數在遍歷時儲存表名稱
DECLARE @tablename VARCHAR(255)
--使用遊標讀取資料庫內所有表表名
DECLARE table_list_cursor CURSOR FOR
SELECT name FROM sysobjects
WHERE OBJECTPROPERTY(id, N'IsTable') = 1 AND name NOT LIKE N'#%%' ORDER BY name
--開啟遊標
OPEN table_list_cursor
--讀取第一條資料
FETCH NEXT FROM table_list_cursor INTO @tablename
--遍歷查詢到的表名
WHILE @@FETCH_STATUS = 0
BEGIN
--檢查當前表是否為使用者表
IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(@tablename) AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
--當前表則讀取其資訊插入到表格中
EXECUTE sp_executesql N'INSERT INTO temp_tableSpaceInfo EXEC sp_spaceused @tbname', N'@tbname varchar(255)', @tbname = @tablename
END
--讀取下一條資料
FETCH NEXT FROM table_list_cursor INTO @tablename
END
--釋放遊標
CLOSE table_list_cursor
DEALLOCATE table_list_cursor
END
GO
使用的時候,執行下面的語句:
EXEC sp_UpdateTableSpaceInfo;
go
SELECT * FROM temp_tableSpaceInfo;
go
方法2:
use test
將資料庫上下文更改為 'test'。
declare @table_spaceused table
(name nvarchar(100)
,rows int
,reserved nvarchar(100)
,data nvarchar(100)
,index_size nvarchar(100)
,unused nvarchar(100)
)
insert into @table_spaceused
(name,rows,reserved,data,index_size,unused )
exec sp_MSforeachtable
@command1='exec sp_spaceused ''?'''
select * from @table_spaceused;
go
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2765155/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 查詢資料庫中所有表資料條數SQLServer資料庫
- SQLServer查詢所有資料庫大小SQLServer資料庫
- SQL Server 跨資料庫查詢SQLServer資料庫
- SQL server資料庫表碎片比例查詢語句SQLServer資料庫
- SQL SERVER 2012資料庫自動備份的方法SQLServer資料庫
- 查詢MySQL資料庫,MySQL表的大小MySql資料庫
- SQL Server資料庫————模糊查詢和聚合函式SQLServer資料庫函式
- 達夢資料庫表空間等空間大小查詢方法總結資料庫
- SQL Server實戰四:查詢資料庫的資料SQLServer資料庫
- 查詢資料庫大小資料庫
- SQL Server在所有表中查詢(在整個庫搜尋內容)SQLServer
- 查詢資料庫每個表佔用的大小資料庫
- Android SQL資料庫查詢方法 query( )AndroidSQL資料庫
- SQL Server統計資料庫中表大小SQLServer資料庫
- 查詢資料庫的資料量的大小資料庫
- 概括SQL Server實時查詢Oracle資料庫WSSQLServerOracle資料庫
- SQL Server 查詢表註釋和欄位SQLServer
- SQL Server資料庫之datepart和datediff應用查詢當天上午和下午的資料SQLServer資料庫
- SQL Server檢視所有表大小,所佔空間SQLServer
- SQL server資料庫with as子句與遞迴查詢的實現SQLServer資料庫遞迴
- SQL Server 資料庫查詢死鎖的處理步驟SQLServer資料庫
- 時序資料庫 TDengine SQL 查詢語法規則彙總,官方教程奉上!資料庫SQL
- Java資料庫分表與多執行緒查詢結果彙總Java資料庫執行緒
- mysql資料庫連表查詢的幾種方法MySql資料庫
- mssql sqlserver 使用sql指令碼 清空所有資料庫表資料的方法分享SQLServer指令碼資料庫
- 資料庫常用的sql語句彙總資料庫SQL
- 詳解SQL Server 2012資料庫備份與還原的教程SQLServer資料庫
- Oracle 高水位查詢和處理方法彙總Oracle
- SQL server根據表名查詢表主鍵SQLServer
- SQL Server 語句日期格式查詢方法SQLServer
- Mysql資料庫使用from與join兩表查詢的方法區別總結MySql資料庫
- SQL Server中Table字典資料的查詢SQL示例程式碼SQLServer
- 資料庫基礎查詢--單表查詢資料庫
- 關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比資料庫SQL
- mybatis-plus連線SQL Server2012分頁查詢異常MyBatisSQLServer
- 資料庫中單表查詢資料庫
- QL Server 百萬級資料提高查詢速度的方法Server
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server