您的位置:首页 > 数据库

SQL Server中数据表存储的计算

2010-08-10 12:36 134 查看
1、建表

create table dmb_tmp

(

name nvarchar(50),

rows int,

reserved nvarchar(50),

data nvarchar(50),

index_size nvarchar(50),

unused nvarchar(50)

)

2、使用系统过程,将结果插入到数据表中

insert into dmb_tmp(name,rows,reserved,data,index_size,unused) exec sp_spaceused 'table_name';

insert into dmb_tmp(name,rows,reserved,data,index_size,unused) exec sp_spaceused 'table_name',true;

3、查询结果

select name,

cast(replace(data,'KB','') as numeric)/1024 ,

cast(replace(index_size,'KB','') as numeric)/1024 ,

cast(replace(unused,'KB','') as numeric)/1024

from dmb_tmp;

以上是在SQL Server2000中试验通过的,第二步中不带参数true的据说是算出来的数据不准,还没有去考证。

第三步中的的计算结果都是KB,而且是字符型的数据,做了进一步的转换,转成了数值型的,这个不是必须的

,可以有很多的方法,以上就是今的总结。

题外话:小弟平时用的都是Oracle,能够有幸用到SQL Server也是托局方的服,局方也是把双刃剑啊,虽然有

幸用到SQL Server,但是也有幸被局方骚扰,本来这个SQL Server是另一个公司的系统所用的数据库,由于各

种原因,最终的数据要到我们的库里来导,今天早上,同事来电告知数据又没有到位,于是登陆到SQL Server

服务器看了一眼,原来是空间不足,本来就不是我们的数据库,维护的问题也轮不到我们,就连我们用的数据

库也是第三方公司来维护,这个确实挺省事,于是告知局方,要他们来处理,本来以为没有事情,下午变态的

局方突然来问,今天空间被占用满了是为什么,被弄的是晕晕乎乎的(+﹏+)~,本来就不是我们的数据库,维护

也不是,却来找我们问原因,简直不知道局方中午吃了什么,只好含含糊糊的应付了一下,下午索性没有事情,

于是上网找了找怎么才能计算表所占存储的大小,由于过于关注结果,个别的帖子没有完全看清,只是找了一个

比较简洁的计算方法,印象中好像有自己来写脚本查看的,对于我这个菜鸟来讲还是蛮厉害的O(∩_∩)O~
本文出自 “自由空间” 博客,请务必保留此出处http://lyp8468739.blog.51cto.com/1594267/371277
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐