当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 获取SQL Server数据库里表占用容量大小

MYSQL
mysql 常用数据库语句 小练习
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
mysql 字符集的系统变量说明
MySQL 在触发器里中断记录的插入或更新?
将MySQL数据库移植为PostgreSQL
mysql 操作总结 INSERT和REPLACE
linux mysql忘记密码的多种解决或Access denied for user ''root''@''localhost''
运用mysqldump 工具时需要注意的问题
mysql 优化日记
MySQL 字符串函数大全
mysql 截取指定的两个字符串之间的内容
MySQL 备份还原数据库批处理
mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
Mysql 数字类型转换函数
mysql 动态生成测试数据
mysql 显示SQL语句执行时间的代码
mysql 设置查询缓存
MYSQL explain 执行计划
MySQL 有输入输出参数的存储过程实例
巧用mysql提示符prompt清晰管理数据库的方法

MYSQL 中的 获取SQL Server数据库里表占用容量大小


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 99 ::
收藏到网摘: n/a

其实只要使用系统内置的存储过程sp_spaceused就可以得到表的相关信息

如:sp_spaceused 'tablename' 

以下是为了方便写的一个存储过程,目的是把当前的所有表的相关信息全部都保存在一个指定的表里面

 

以下为引用的内容:

  CREATE PROCEDURE get_tableinfo AS
  
  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
  
  执行存储过程
  
  exec get_tableinfo
  
  查询运行该存储过程后得到的结果
  
  select *
  from tablespaceinfo
  order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc