查询SQL SERVER中某个数据库的每个表的数据量和每行记录所占用空间
类别:数据库 浏览量:1829
时间:2016-5-13 查询SQL SERVER中某个数据库的每个表的数据量和每行记录所占用空间
查询SQL SERVER中某个数据库的每个表的数据量和每行记录所占用空间一、执行如下SQL语句
CREATE TABLE #tablespaceinfo
(
nameinfo VARCHAR(500) ,
rowsinfo BIGINT ,
reserved VARCHAR(20) ,
datainfo VARCHAR(20) ,
index_size VARCHAR(20) ,
unused VARCHAR(20)
)
DECLARE @tablename VARCHAR(255);
DECLARE Info_cursor CURSOR
FOR
SELECT '[' + s.[name] +']' +'.' + '[' + t.[name] + ']'
FROM sys.tables t
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE type = 'U';
OPEN Info_cursor
FETCH NEXT FROM Info_cursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #tablespaceinfo
EXEC sp_spaceused @tablename
FETCH NEXT FROM Info_cursor
INTO @tablename
END
CLOSE Info_cursor
DEALLOCATE Info_cursor
--创建临时表
CREATE TABLE [#tmptb]
(
TableName VARCHAR(50) ,
DataInfo BIGINT ,
RowsInfo BIGINT ,
Spaceperrow AS ( CASE RowsInfo
WHEN 0 THEN 0
ELSE CAST(DataInfo AS decimal(18,2))/CAST(RowsInfo AS decimal(18,2))
END ) PERSISTED
)
--插入数据到临时表
INSERT INTO [#tmptb]
( [TableName] ,
[DataInfo] ,
[RowsInfo]
)
SELECT [nameinfo] ,
CAST(REPLACE([datainfo], 'KB', '') AS BIGINT) AS 'datainfo' ,
[rowsinfo]
FROM #tablespaceinfo
ORDER BY CAST(REPLACE(reserved, 'KB', '') AS INT) DESC
--汇总记录
SELECT [tbspinfo].* ,
[tmptb].[Spaceperrow] AS '每行记录大概占用空间(KB)'
FROM [#tablespaceinfo] AS tbspinfo ,
[#tmptb] AS tmptb
WHERE [tbspinfo].[nameinfo] = [tmptb].[TableName]
ORDER BY CAST(REPLACE([tbspinfo].[reserved], 'KB', '') AS INT) DESC
DROP TABLE [#tablespaceinfo]
DROP TABLE [#tmptb]
二、例如查询 SQL SERVER2014 安装的实例数据库 (ReportServer$MSSQLSERVER2014)
结果如图
标签:SQL SERVER
您可能感兴趣
- SQL Server中raiserror
- sql server 共享锁
- sqlserver游标使用场景(解析SQL Server聚焦移除Bookmark Lookup、RID Lookup、Key Lookup)
- sql server2019无法连接到服务器(SQL Server常见问题及解决方法分享)
- sql server2005如何配置(SQLServer2005创建定时作业任务)
- sqlserver数据库的对象有哪些(详解SQL Server数据库架构和对象、定义数据完整性)
- sql server占cpu高
- 无法打开sql server的连接(由于系统错误 126 SQL Server,指定驱动程序无法加载)
- microsoftsqlserver官网(Microsoft SQL Server数据库各版本下载地址集合)
- sqlserver判断条件输出字符(SQL Server查询条件IN中能否使用变量的示例详解)
- sqlserver怎么查看数据库版本(Sql Server数据库各版本功能对比)
- SQL SERVER连接池
- sql server证书配置(SQL Server Alwayson创建代理作业的注意事项详解)
- sql server怎么导出数据库(sqlserver复制数据库的方法步骤图文)
- sqlserver分区查询语句(SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解)
- sqlserver维护计划保存在哪(SQL Server误设置max server memory的处理方法)
- 高考数学题(高考数学题基础题占多少分)
- 没钱只能吃土(没钱要吃土了幽默短信发朋友圈)
- 今年考高会很难吗(今年高考会考试吗)
- 盘古开天地 他创造了世界,谁创造了盘古 盘古是伏羲吗(盘古开天地他创造了世界)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
- 冬天来了手脚冰凉 真不是因为上辈子你是折翼的天使(冬天来了手脚冰凉)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9