表中一条数据所占用大小(磁盘空间)

pennyzhueng 2003-08-22 02:41:06
现在需要统计某一个表中一条数据在三个情况时所占用的大小(磁盘空间)
1:最小--只填写那些不允许为空的字段 (按照各数据类型的大小计算)
2:最大--把所有字段都填写 (按照各数据类型的大小计算)
3:平均--表中所有数据实际所占的平均值
...全文
253 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pennyzhueng 2003-08-25
  • 打赏
  • 举报
回复
哇..这..这.不是很麻烦吗?我现在有差不多一百多个表啦...
liukaiii 2003-08-25
  • 打赏
  • 举报
回复
我是把各字段用手工加一下
pennyzhueng 2003-08-25
  • 打赏
  • 举报
回复
CrazyFor(太阳下山明朝依旧爬上来) :
现在我需要查Text类型的,该如何实现啊??
pennyzhueng 2003-08-25
  • 打赏
  • 举报
回复
谢谢各位大哥.不过小弟现在还在搞了,因为正如各位所说的,要考虑的问题实在太多了
happydreamer 2003-08-23
  • 打赏
  • 举报
回复

计算数据表格长度的步骤
1. 计算表中的记录长度,可以将表中每列的长度相加求得
2. 将8092除以第1步的行长,并舍如为最近似数,8092是一个数据页能保存的实际数据量,舍入的原因是行不能跨页
3. 将所要的行数除以第2步的结果,即可得到表格所需的数据页数
4. 将3步的结果乘以8192(数据页长度,字节数),既得到表格所占用的磁盘字节数

例子
talbe 10000个记录
custom varchar(20)
address varchar(50)
city varchar(30)
state char(15)
zip char(10)
计算
1. 字段长度和 125
2. 8092除以125舍入为近似值64,得到一页能放的行数
3. 10000行除以一页行数(64)舍入为最近似值 157 因为部分行会移到新的数据页
4. 将157乘以 8192得到表格约占用1570000字节
dlkfth 2003-08-23
  • 打赏
  • 举报
回复
happydreamer(小黑-潜水中)
呵呵如果有填冲因子那??
实际长度8092 ?
8060那?
TaoGeGe 2003-08-23
  • 打赏
  • 举报
回复
通常來說,記錄的大小就是每個相關字段長度的加總。要求非常精確的話要考慮的就很多了
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
呵呵~~~要这么精确还得考虑Varchar类型的字段,它的实际占用空间是字符串长度加1个字节.
pennyzhueng 2003-08-22
  • 打赏
  • 举报
回复
但..Microsoft® SQL Server™ 优化用于 bit 列的存储。如果一个表中有不多于 8 个的 bit 列,这些列将作为一个字节存储。如果表中有 9 到 16 个 bit 列,这些列将作为两个字节存储
这个又怎样算呢??
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
占用字节数就是记录的最大长度,不包含TEXT类型.

SELECT
(case when a.colorder=1 then d.name else '' end) N'表名',
a.colorder N'字段序号',
a.name N'字段名',
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',
(case when (SELECT count(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = 'PK'))>0 then '√' else '' end) N'主键',
b.name N'类型',
a.length N'占用字节数',
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
(case when a.isnullable=1 then '√'else '' end) N'允许空',
isnull(e.text,'') N'默认值',
isnull(g.[value],'') AS N'字段说明'
--into ##tx

FROM syscolumns a left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e
on a.cdefault=e.id
left join sysproperties g
on a.id=g.id AND a.colid = g.smallid
order by object_name(a.id),a.colorder
通过性能监控工具nmon的学习,清楚的了解Linux服务器资源CPU、磁盘、内存、网络、进程之间的关联,了解nmon监控结果的字段的含义以及影响,更重要的是通过熟悉监控结果中字段数据的由来,理清性能测试的分析思路,学会性能测试的分析方法。 课程内容:第一章:课程简介课程介绍课程大纲第二章:nmon介绍nmon简介nmon下载nmon安装nmon屏幕统计-交互模式nmon数据统计-数据收集模式nmon进程关闭nmon分析工具nmon数据文件解析第三章:nmon数据分析SYS_SUMM【系统资源汇总】AAA【服务器基本信息】BBBP【Linux执行的命令和结果】CPU_ALL【所有CPU数据的概述】CPU_SUMM【每个CPU的整体占用情况】CPU001【CPU001的每个时间点占用情况】DISK_SUMM【磁盘的吞吐量和IOPS】DISKBSIZE【磁盘块信息】DISKBUSY【磁盘的繁忙情况】DISKREAD【磁盘的读取操作速率】DISKXFER【磁盘的I/0传输速率】JFSFILE【JFS文件空间使用百分比】MEM【内存】VM【虚拟内存】NET【网络数据传输速率】NETPACKET【网络数据包】PROC【进程】TOP【PID进程相关的CPU/内存等】 课程提供的下载资料:包含通过nmon收集的Linux服务器资源信息ecs-lc_220715_1019.nmon文件,大家在没有Linux服务器的情况下,可以通过对这个文件进行nmon数据解析和数据分析的学习。 

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧