sql server数据库中各数据表信息统计
2018-03-30 15:26
176 查看
----======================================
----Created:2016年10月14日 11:35:54
----Description:数据库中各数据表信息统计
----======================================
ALTER proc dbo.[upt_GetTablesStatInfo]
as
begin
create table #temp_TableInfo
(
name varchar(100)
,row varchar(100)
,reserved varchar(100)
,data varchar(100)
,index_size varchar(100)
,unused varchar(100)
)
declare @name varchar(100)
declare cur cursor for
select t.[name] as name from sys.tables as t,sys.schemas as s where t.schema_id = s.schema_id and s.[name] = 'dbo'
open cur
fetch next from cur into @name
while @@fetch_status=0
begin
set @name = 'dbo.'+@name
insert into #temp_TableInfo
exec sp_spaceused @name
fetch next from cur into @name
end
close cur
deallocate cur
create table #temp_TableStat
(
name varchar(100),
row int,
reserved decimal(12,3),
data decimal(12,3),
index_size decimal(12,3),
unused decimal(12,3)
,data_perRow decimal(12,3)
)
insert into #temp_TableStat
select name
,convert(int,row) as row
,convert(int,replace(reserved,'KB',''))/1024.00 as reserved
,convert(int,replace(data,'KB',''))/1024.00 as data
,convert(int,replace(index_size,'KB',''))/1024.00 as index_size
,convert(int,replace(unused,'KB',''))/1024.00 as unused
,0
from #temp_TableInfo
update #temp_TableStat set data_perRow = data * 1024 / row where row > 0
update #temp_TableStat set data_perRow = 0 where row <= 0
--select * from #temp_TableInfo order by data desc
--select * from #temp_TableStat order by data desc
select ROW_NUMBER() over(order by data desc) as '序号'
,name as '数据表名'
,row as '数据记录数'
,reserved as '分配空间(MB)'
,data as '占用空间(MB)'
,unused as '未用空间(MB)'
,index_size as '索引使用空间(MB)'
,data_perRow as '单条记录占用空间(KB)'
from #temp_TableStat order by data desc
drop table #temp_TableInfo
drop table #temp_TableStat
end
----Created:2016年10月14日 11:35:54
----Description:数据库中各数据表信息统计
----======================================
ALTER proc dbo.[upt_GetTablesStatInfo]
as
begin
create table #temp_TableInfo
(
name varchar(100)
,row varchar(100)
,reserved varchar(100)
,data varchar(100)
,index_size varchar(100)
,unused varchar(100)
)
declare @name varchar(100)
declare cur cursor for
select t.[name] as name from sys.tables as t,sys.schemas as s where t.schema_id = s.schema_id and s.[name] = 'dbo'
open cur
fetch next from cur into @name
while @@fetch_status=0
begin
set @name = 'dbo.'+@name
insert into #temp_TableInfo
exec sp_spaceused @name
fetch next from cur into @name
end
close cur
deallocate cur
create table #temp_TableStat
(
name varchar(100),
row int,
reserved decimal(12,3),
data decimal(12,3),
index_size decimal(12,3),
unused decimal(12,3)
,data_perRow decimal(12,3)
)
insert into #temp_TableStat
select name
,convert(int,row) as row
,convert(int,replace(reserved,'KB',''))/1024.00 as reserved
,convert(int,replace(data,'KB',''))/1024.00 as data
,convert(int,replace(index_size,'KB',''))/1024.00 as index_size
,convert(int,replace(unused,'KB',''))/1024.00 as unused
,0
from #temp_TableInfo
update #temp_TableStat set data_perRow = data * 1024 / row where row > 0
update #temp_TableStat set data_perRow = 0 where row <= 0
--select * from #temp_TableInfo order by data desc
--select * from #temp_TableStat order by data desc
select ROW_NUMBER() over(order by data desc) as '序号'
,name as '数据表名'
,row as '数据记录数'
,reserved as '分配空间(MB)'
,data as '占用空间(MB)'
,unused as '未用空间(MB)'
,index_size as '索引使用空间(MB)'
,data_perRow as '单条记录占用空间(KB)'
from #temp_TableStat order by data desc
drop table #temp_TableInfo
drop table #temp_TableStat
end
相关文章推荐
- 机器学习(七)使用pandas库进行数据分析_——统计信息和离散化
- 自动收集和手工收集统计数据信息讲解
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
- sql语句(一)统计跟单位目录关联的人员信息表的多个数据
- 通过使用第三方SDK来实现应用的分享,第三方登陆,数据信息统计等功能(ShareSDK)。
- Oracle收集表的数据与统计信息差异
- asp.net中获取数据连接的统计信息
- 【读图】7张国外热门社交网络的统计数据信息图
- python数据分析(1)——获取微信好友的统计信息
- 大数据:广州租房信息统计,这些地方最便宜
- 多源多目标统计信息融合-第三章 通用的数据建模
- ArcGIS Engine 中对栅格数据的波段信息统计 (转)
- 8. 确保所处理的表中数据分布和其他统计信息正确并反映当前状况
- 概率论与数据统计在分类预测中的原理介绍(信息增益、交叉熵等)
- Nutch 读取搜索结果目录统计数据、提取链接结构信息
- Timesten在大量数据导入、更新之后需要更新统计信息
- 圆圈来显示统计数据信息的jQuery插件:Circliful
- SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇)
- mysql innodb 如何获取用于 生成执行计划的 数据表统计信息
- oracle数据泵导入分区表统计信息报错(一)