在SQL SERVER中估算堆大小

在SQL SERVER中估算堆大小

ID:30565953

大小:108.00 KB

页数:6页

时间:2018-12-31

在SQL SERVER中估算堆大小_第1页
在SQL SERVER中估算堆大小_第2页
在SQL SERVER中估算堆大小_第3页
在SQL SERVER中估算堆大小_第4页
在SQL SERVER中估算堆大小_第5页
资源描述:

《在SQL SERVER中估算堆大小》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、在SQLSERVER中估算堆大小  摘要:SQLSERVER是占有市场份额较大的一个关系数据库管理系统,本文讨论在数据库设计阶段的一项优化技术,估算堆的大小。  关键词:数据库;SQLSERVER;计算  中图分类号:G250.74文献标志码:A文章编号:1674-9324(2013)22-0146-03  一个数据库实例能够以最佳状态运行是以良好的设计为基础并配合合理的硬件部署和软件协助实现的。本文针对占有市场份额很大的数据库产品SQLSERVER,讨论数据库实例设计方面的优化技术。在数据库的设计中,我们可以依据概念结构设计的

2、结果得出数据库的具体模式结构,从而进行合理的部署。数据库的初始大小是设计中的一个关键问题。数据库初始大小过大,会浪费我们不必要的硬盘空间,数据库初始大小过小,SQLServer会经常根据需要进行数据库的扩容,从而增加了系统运行负担,因此数据库的初始大小是优化技术的一个关键。那么数据库的初始大小应该设计为多大合适呢?  SQLSERVER的数据库存储空间的大小由以下几个因素决定:堆或者聚集索引的大小,非聚集索引的大小。本篇仅对堆的大小估算进行讨论。  一、估算堆的大小的步骤  1.估算表中将存储的行数:Num_Rows=表中的行数

3、。6  2.指定固定长度和可变长度列的数量,并计算存储所需的空间:计算每组列在数据行中所占据的空间。列的大小取决于数据类型和长度说明。Num_Cols=总列数(固定长度和可变长度);Fixed_Data_Size=所有固定长度列的总字节数;Num_Variable_Cols=可变长度列的数量;Max_Var_Size=所有可变长度列的最大字节数。  3.保留行中称为空位图的部分以管理列的为空性。计算大小:Null_Bitmap=2+((Num_Cols+7)/8)取整数部分。  4.计算可变长度数据的大小:假设所有可变长度列均百

4、分之百充满。如果表中有可变长度列,确定在行中存储这些列所用的空间:Variable_Data_Size=2+(Num_Variable_Colsx2)+Max_Var_Size如果预计可变长度列占用的存储空间比例较低,可以按照该比例调整Max_Var_Size值,从而对整个表的大小得出一个更准确的估计。如果没有可变长度列,则Variable_Data_Size取值为0。  5.计算总的行大小:Row_Size=Fixed_Data_Size+Variable_Data_Size+Null_Bitmap+4其中的数值4是数据行的行

5、标题开销。  6.计算每页的行数(每页大小为8K,页首的12个字节用于存储页的基本信息,因此有8096可用字节):Rows_Per_Page=8096/(Row_Size+2),由于行的存储不能跨页,因此每页的行数应向下舍入到最接近的整数。公式中的数值2是计算行数时引入的行大小余量。  7.计算存储所有行所需的页数:Num_Pages=Num_Rows/Rows_Per_Page估计的页数应向上舍入到最接近的整数。6  8.计算在堆中存储数据所需的空间量(每页的总字节为8192):堆大小(字节)=8192xNum_Pages。 

6、 二、下面以employees表为例,估算存储该表所需的堆空间大小  employees表结构如下:  CreatetableEmployees  (EmployeeIDint,  LastNamenvarchar(20),  FirstNamenvarchar(10),  Titlenvarchar(30),  Birthdaydatatime  HireDatedatatime  Adressnvarchar(60),  Citynvarchar(15),  PostalCardnvarchar(10),  HomePhon

7、envarchar(12),  )  其中的固定长度列有EmployeeID,Birthday,HireDate共计3列。  其中可变长度列有LastName,FirstName,Title,Adress,City,PostalCard,HomePhone共计7列。  固定长度列的总字节数:Fixed_Data_Size=(int)4+(datetime)8+(datetime)8=206  假设所有可变长度列均100%充满,Max_Var_Size取表中的Address列的长度60,则可变长度列的总字节数:Variable_D

8、ata_Size=2+(7x2)+60=76  保留空位图大小:Null_Bitmap=2+((10+7)/8)=3(下取整)  行的总大小:Row_Size=20+76+3+4=103  每页的行数:Rows_Per_Page=8096/(103+2)=77 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。