如何获取SQL Server数据库里表的占用容量大小
http://tech.ddvip.com 2008年09月09日 社区交流
本文详细介绍如何获取SQL Server数据库里表的占用容量大小
其实只要使用系统内置的存储过程sp_spaceused就可以得到表的相关信息 如:sp_spaceused 'tablename' 以下是为了方便写的一个存储过程,目的是把当前的所有表的相关信息全部都保存在一个指定的表里面 CREATEPROCEDUREget_tableinfoAS ifnotexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[tablespaceinfo]')andOBJECTPROPERTY(id,N'IsUserTable')=1)createtable tablespaceinfo --创建结果存储表 (nameinfovarchar(50), rowsinfoint,reservedvarchar(20), datainfovarchar(20) , index_sizevarchar(20), unusedvarchar(20))deletefromtablespaceinfo--清空数据表declare@tablenamevarchar(255) --表名称declare@cmdsqlvarchar(500)DECLAREInfo_cursorCURSORFORselecto.name fromdbo.sysobjectsowhereOBJECTPROPERTY(o.id,N'IsTable')=1 ando.namenotlikeN'#%%' orderbyo.nameOPENInfo_cursorFETCHNEXTFROMInfo_cursorINTO@tablenameWHILE@@FETCH_STATUS=0BEGIN ifexists(select*fromdbo.sysobjectswhereid=object_id(@tablename)andOBJECTPROPERTY(id,N'IsUserTable')=1) executesp_executesql N'insertintotablespaceinfo execsp_spaceused@tbname', N'@tbnamevarchar(255)', @tbname=@tablename FETCHNEXTFROMInfo_cursor INTO@tablenameENDCLOSEInfo_cursorDEALLOCATEInfo_cursorGO执行存储过程 exec get_tableinfo查询运行该存储过程后得到的结果select *from tablespaceinfoorder by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc![]() |
来源:CSDN 责编:豆豆技术应用
正在加载评论...
- SQL Server 2008 教程
- SQL Server 2005 教程
- SQL Server 安全设置
- SQL Server 故障解决
- SQL Server 安装配置
- SQL Server 备份恢复
- SQL Server 性能调优
- SQL Server 存储过程
- SQL Server 函数
- SQL Server 事务
- SQL Server 查询
- SQL Server 索引
- SQL Server 入门教程
- SQL Server 数据类型
- SQL Server 数据库表
- SQL Server T-SQL
- SQL Server 语句
- SQL Server 死锁
- SQL Server 加密
- SQL Server 数据库连接
- SQL Server 数据仓库
- SQL Server 数据库管理
- 更多SQL Server 专题>>>
