查看SQL Server数据空间分配情况

server|数据

今天客户反映数据库文件空间增长过快 ,需要分析数据库表存放空间分配情况,临时写了以下过程,
与大家共享。

/********************************
功能:获取表的空间分布情况  ycsoft 2005-07-13
**********************************/

if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table  tablespaceinfo                         --创建结果存储表
              (nameinfo varchar(50) ,
               rowsinfo int , reserved varchar(20) ,
               datainfo varchar(20)  ,
               index_size varchar(20) ,
               unused varchar(20) )

delete from tablespaceinfo --清空数据表

declare @tablename varchar(255)  --表名称

declare @cmdsql varchar(500)

DECLARE Info_cursor CURSOR FOR
select o.name 
from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1
     and o.name not like N'#%%'  order by o.name

OPEN Info_cursor

FETCH NEXT FROM Info_cursor
INTO @tablename

WHILE @@FETCH_STATUS = 0
BEGIN

  if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  execute sp_executesql
         N'insert into tablespaceinfo  exec sp_spaceused @tbname',
          N'@tbname varchar(255)',
          @tbname = @tablename

  FETCH NEXT FROM Info_cursor
  INTO @tablename
END

CLOSE Info_cursor
DEALLOCATE Info_cursor
GO

--knowsky.com数据库信息
sp_spaceused @updateusage = 'TRUE' 

--表信息
select *
from tablespaceinfo 
order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

备注:

Name nvarchar(20) 为其请求空间使用信息的表名。
Rows char(11) 表中现有的行数。
reserved varchar(18) 表保留的空间总量。
Data varchar(18) 表中的数据所使用的空间量。
index_size varchar(18) 表中的索引所使用的空间量。
Unused varchar(18) 表中未用的空间量。

时间: 2025-01-21 00:56:22

查看SQL Server数据空间分配情况的相关文章

快速查看SQL Server 中各表的数据量以及占用空间大小

快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(18) ,Data varchar(18) ,index_size varchar(18) ,Unused varchar(18) ) GO INSERT #T EXEC SP_MSFOREACHTABLE 'EXEC sp_spaceused "?"' SELECT * FROM #T O

解决SQL Server虚拟内存不足情况_MsSql

解决SQL Server虚拟内存不足情况 症状 在具有 2 GB 或更多 RAM 的计算机上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虚拟地址空间之外,SQL Server 在启动过程中保留剩下的所有虚拟地址空间以供缓冲池使用.另外,为了存储数据和过程缓存,SQL Server 使用缓冲池内存为来自 SQL Server 进程的大多数小于 8 KB 的其他内存请求提供服务.剩下的未保留内存准备用于不能从缓冲池得到服务的其他分配.

解决SQL Server虚拟内存不足情况

解决SQL Server虚拟内存不足情况 症状 在具有 2 GB 或更多 RAM 的计算机上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虚拟地址空间之外,SQL Server 在启动过程中保留剩下的所有虚拟地址空间以供缓冲池使用.另外,为了存储数据和过程缓存,SQL Server 使用缓冲池内存为来自 SQL Server 进程的大多数小于 8 KB 的其他内存请求提供服务.剩下的未保留内存准备用于不能从缓冲池得到服务的其他分配.

SQL SERVER中什么情况会导致索引查找变成索引扫描

SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结合上下文具体场景做了下测试.总结.归纳.   1:隐式转换会导致执行计划从索引查找(Index Seek)变为索引扫描(Index Scan) Implicit Conversion will cause index scan instead of index seek. While implicit conversions occur in SQL Ser

SQL Server on Linux BCP工具导出RDS SQL Server数据

摘要: SQL Server发布了Linux版本之后,客户增加了一些新需求,总结主要有以下两种: 1.是否支持在Linux操作系统保存,RDS SQL Server的CSV格式文件到文件系统 2.在一台Linux系统的主机同时管理RDS MySQL实例数据和RDS SQL Server数据 需求解读: SQL Server BCP工具可以满足以上需求,这个工具提供了导出CSV格式的文本,可以保存在Linux文件系统,同时也可以方便的讲这个CSV文件导入到RDS MySQL实例或其他支持标准CSV

navicat工具来将SQL Server数据迁移到MySQL

下面来说说用navicat工具来将SQL Server数据迁移到MySQL上: 1. 新建需要迁移的数据库 2. 打开数据库,点击导入向导 3.  选择数据导入格式 4. 选择数据源 5. 连接属性 6. 选定要迁移的表 7. 定义目标表 8. 更改实际情况对目标表进行更改 9.  选择导入模式 10. 开始导入 11. 导入后结果 至此,迁移完成,可以更改实际情况再对迁移后的表进行更改. 顶 0 踩

ASP实现备份sql server数据

server|sql|备份|数据 建个bak文件夹啊,放数据! db.asp代码如下: <%dim conndim connstr'on error resume nextset conn=server.CreateObject("adodb.connection")connstr="Provider=SQLOLEDB;data source=192.168.2.1;UID=sa;Pwd=123;DataBase=test"conn.Open connstr

使用SQL Server数据服务开发功能强大且可扩展的应用程序

本文使用了以下技术: SQL Server 本文将介绍以下内容: SSDS 数据模型 管理实体.容器和颁发机构 创建示例 Web 应用程序 类序列化和反序列化 本专栏基于 SQL Server 数据服务的预发布版本撰写而成.文中包含的所有信息均有可能发生变更. 目录 SSDS 数据模型 构建分类广告系统 添加城市 添加类别 更新和删除实体 添加和删除列表架构 分类 Web 应用程序 类反序列化 使用自定义列表架构

如何正确查看 SQL Server 2005 版本号?

  查看 SQL Server 2005 版本号 select serverproperty('productversion') ,serverproperty('productlevel') ,serverproperty('edition') 下面是 SQL Server 2005 版本号查询结果信息: 一.查看 SQL Server 2005 版本号 select serverproperty('productversion') ,serverproperty('productlevel'