中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 高级用户界面
表空间计算方法
作者:sunny_wz 时间:2001-10-01 09:50 出处:互联网 责编:chinaitpower
              摘要:表空间计算方法

     很多人用数据库,都不知对表空间大小的计算方法,有效的计算表空间的大小可以有效的提高效率和了解表的存储,达到更好的控制表。以下列出表空间的计算方法,以供大家参考。

数据类型          大小

char/binary         在定义中指定的大小

varchar/varbinary    实际的数据大小,使用一个平均估计值

int                4字节

smallint            2字节

tinyint             1字节

float              8字节

floatb         4字节(精确到一至七位小数的数字)

floatc         8字节(精确到八至十五位小数的数字)

double precision     8字节

real               4字节

money             8字节

small money        4字节

datetime           8字节

smalldatetime       4字节

bit                1字节

decimal/numeric     根据精度,217字节

text/image          每个表行16字节,每个not null列至少加上2KB的页

timestamp          8字节

允许NULL的列定义为var数据类型

数值精度          大小

09              5字节

1019            9字节

2028            13字节

2938            17字节

1.带簇索引表的计算方法

数据长度计算方法:

.不含可变长度字段的行大小=2+(以字节计算的列的大小的合计值)

.含可变长度字段的行大小=2+(以字节计算的固定长度列的大小的合计值)+(可变长度列的平均大小的合计值)+(可变长度列的个数+1)+2

.一页中的行数=8060/(行的大小)(只舍不入)

8KB数据页的数目=(需要的行数)/(每页的行数)(只入不舍)

簇索引长度方法:

.不含可变长度字段的行大小=5+(以字节计算的列的大小的合计值)

.含可变长度字段的行大小=5+(以字节计算的固定长度列的大小的合计值)+(可变长度列的平均大小的合计值)+(可变长度列的个数+1)+2

.一页中的行数=8060/(行的大小)-2

.在N级上的索引页数=(数据页数)/(一页中簇索引行数)(只入不舍)

例:有一个表,有一个int型簇索引,估计5000000行所需的空间,假定还有四个23字节长的var类型列,且列的平均长度为定义长度的60%

24+(9260%)+(41)+263

806063127

500000012739371

549

806092894

3937189445

458941

数据库表所需的8KB页的总数:

data page39371

index pagelevel 1):1

index pagelevel 0):45

total number of 8KB pages39417or about 308MB

2.带非簇索引表的计算方法

.索引行大小=7+(固定长度关键字的长度的合计值)

.叶子索引行大小=9+(固定长度关键字的长度的合计值)+(可变长度关键字的长度的合计值)+(可变长度关键字的个数)+1

.每页的叶子行数=8060/(叶子索引行大小)(只舍不入)

.叶子页数=(表中的行数)/(每页的叶子行数)(只入不舍)

.非叶子行大小=叶子索引行大小+4

.每页的非叶子索引行数=8060/(非叶子行大小)-2

.在N级上的索引页数=(叶子页数)/(每页的非叶子索引行数)(只入不舍)

例:有一个表,有一个六字节长的非簇索引,估计5000000行所需的空间。

7613

806013620

50000006208065

13417

8060172473

806547318

184731

数据表所需的8KB页的总数:

leaf page8065

leaf index pagelevel 1):1

leaf index pagelevel 0):18

total number of 8KB pages8084 or about 64MB

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有