在SQL SERVER中估算堆大小

来源 :教育教学论坛 | 被引量 : 0次 | 上传用户:sarah_zld
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:SQL SERVER是占有市场份额较大的一个关系数据库管理系统,本文讨论在数据库设计阶段的一项优化技术,估算堆的大小。
  关键词:数据库;SQL SERVER;计算
  中图分类号:G250.74 文献标志码:A 文章编号:1674-9324(2013)22-0146-03
  一个数据库实例能够以最佳状态运行是以良好的设计为基础并配合合理的硬件部署和软件协助实现的。本文针对占有市场份额很大的数据库产品SQL SERVER,讨论数据库实例设计方面的优化技术。在数据库的设计中,我们可以依据概念结构设计的结果得出数据库的具体模式结构,从而进行合理的部署。数据库的初始大小是设计中的一个关键问题。数据库初始大小过大,会浪费我们不必要的硬盘空间,数据库初始大小过小,SQL Server会经常根据需要进行数据库的扩容,从而增加了系统运行负担,因此数据库的初始大小是优化技术的一个关键。那么数据库的初始大小应该设计为多大合适呢?
  SQL SERVER的数据库存储空间的大小由以下几个因素决定:堆或者聚集索引的大小,非聚集索引的大小。本篇仅对堆的大小估算进行讨论。
  一、估算堆的大小的步骤
  1.估算表中将存储的行数:Num_Rows=表中的行数。
  2.指定固定长度和可变长度列的数量,并计算存储所需的空间:计算每组列在数据行中所占据的空间。列的大小取决于数据类型和长度说明。Num_Cols=总列数(固定长度和可变长度);Fixed_Data_Size=所有固定长度列的总字节数;Num_Variable_Cols=可变长度列的数量;Max_Var_Size=所有可变长度列的最大字节数。
  3.保留行中称为空位图的部分以管理列的为空性。计算大小:Null_Bitmap=2 ((Num_Cols 7)/8)取整数部分。
  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是数据行的行标题开销。
  6.计算每页的行数(每页大小为8K,页首的12个字节用于存储页的基本信息,因此有8096可用字节):Rows_Per_Page=8096/(Row_Size 2),由于行的存储不能跨页,因此每页的行数应向下舍入到最接近的整数。公式中的数值2是计算行数时引入的行大小余量。
  7.计算存储所有行所需的页数:Num_Pages=Num_Rows/Rows_Per_Page估计的页数应向上舍入到最接近的整数。
  8.计算在堆中存储数据所需的空间量(每页的总字节为8192):堆大小(字节)=8192xNum_Pages。
  二、下面以employees表为例,估算存储该表所需的堆空间大小
  employees表结构如下:
  Create table Employees
  (EmployeeID int,
  LastName nvarchar(20),
  FirstName nvarchar(10),
  Title nvarchar(30),
  Birthday datatime
  HireDate datatime
  Adress nvarchar(60),
  City nvarchar(15),
  PostalCard nvarchar(10),
  HomePhone nvarchar(12),
  )
  其中的固定长度列有EmployeeID,Birthday,HireDate共计3列。
  其中可变长度列有LastName,FirstName,Title,Adress,City,PostalCard,HomePhone共计7列。
  固定长度列的总字节数:Fixed_Data_Size=(int)4 (datetime)8 (datetime)8=20
  假设所有可变长度列均100%充满,Max_Var_Size取表中的Address列的长度60,则可变长度列的总字节数:Variable_Data_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
  假定该表将存储1000条记录,则存储所有行所需的页数:
  Num_Pages=1000/77=13(上取整)
  该表存储所需的空间量:8K*13=104K。估算出数据库中所有表(堆)的大小求总和就得到数据库的初始大小。假定数据库EMP中还有5张表,每张表的堆大小估算结果分别为,220K,171K,128K,350K,760K。则数据库的初始大小为=104K 220K 171K 128K 350K 760K=1733K,约2M(上取整)。
  定义数据库的物理结构   CREATE DATABASE EMP
  ON
  (name=’EMP_DAT’,
  Filename’d:MPfileEMP_DAT.MDF’,
  Sieze=2M,
  Maxsize=5M,
  Filegrowth=1M
  )
  LOG ON
  (name=’EMP_log’,
  Filename’d:EMPfileEMP_LOG.LDF’,
  Sieze=1M,
  Maxsize=3M,
  Filegrowth=1M
  )
  三、总结
  讨论数据库的初始大小,对于某些实例非常有效。比如数据增加不大的一类管理系统,一旦数据录入结束,后期运行维护时产生的数据非常小,这样数据库基本无扩容,只要确定好数据库的初始大小即可。在确定物理数据库的各文件属性时,SIZE属性就是本文讨论的主要问题。另外,数据库文件的部署(FILENAME属性),数据库的增长方式(Filegrowth属性)也影响数据库实例的运行效率。数据库的增长方式有两种,按M字节增长和按百分比增长,一般情况下,我们将数据库的增长方式设置为按M字节增长较优。如果考虑到数据库的安全性,可以将数据库文件同RAID磁盘阵列技术结合,合理部署数据库文件的fliename属性。将文件部署于不同的磁盘上,既加快了数据库的读写速度,又提高的数据的安全性。合理设计、恰当部署是数据库在设计阶段进行优化的起点,SQL Server的数据库优化技术还体现在诸多方面,比如索引的设计优化、查询的优化等。因篇幅有限,在此不多讨论。
  参考文献:
  [1]明日科技.SQL SERVER 2005开发技术大全[M].北京:人民邮电出版社,2007.
  [2]粘新育.SQL Server 2005数据库应用技术[M].北京:中国铁道出版社,2011.
  [3]岳莉,刘凌,江军.Study of Real-time Database Based on Common Information Model.International Conference on Intelligent Systems Design and Engineering Application,(ISDEA2013)
  作者简介:岳莉(1977-),女,硕士,讲师,现为山东职业学院信息工程系教师,主要从事计算机应用、计算机软件等方向的教学及应用研究工作。
其他文献
自2001年全球经济出现下滑以来,国内外投行业务普遍进入困难期,国内券商的投行业务更是陷入了前所未有的低谷.本文主要分析了新形势下,投行业务的组织架构、管理模式、业务操
在经济发展的同时,要全面提高道路质量,因此要重视路基桥梁工程的试验检测方法,本文首先简单介绍了路基工程中的部分试验检测方法及其共性,紧接着在现阶段中剖析工程出现的几
目的:探讨分析食管乳头状瘤应用内镜活检钳除术的临床效果。方法:选取2014年9月-2016年9月本院消化内科确诊收治的75例食管乳头状瘤患者作为研究对象,所有患者采用消化道电子
自然杀伤细胞(NK)是体内不同于T细胞和B细胞的一群大颗粒淋巴细胞,由于其在机体抗病毒感染及肿瘤防御方面发挥重要作用,现已成为肿瘤免疫治疗的研究热点。全文就NK细胞的起源
近年来,很多村集体资金多由乡镇代管,但是"资金代管"工作还远远称不上规范化,在运行管理过程中存在较多的问题和不足。一、账务处理不规范。有的乡镇将所代管的资金纳入应收应
培养创新型人才是新时期教育工作的迫切任务,实践教学是培养创新型人才的重要途径。本文以国际贸易专业为例,提出以构建主义学习理论为基础,把实践教学分为基础知识、专业综合、
目的:观察优质护理在甲状腺手术患者围手术期护理中的应用效果及对并发症发生率的影响。方法:选取2016年1月-2017年12月本院收治的甲状腺手术患者90例作为研究对象,按照不同
"6月165条,7月177条,8月284条,9月490条,10月555条……"村民小组纷纷将账本委托镇(街)财政所管理,这种现象发生在广东省湛江市坡头区。湛江市坡头区6个镇(街)共有619个组级集体经济
<正>近年来,随着我国城镇化进程的不断加快,各地劳务经济发展迅猛,与之相伴生的留守儿童特殊群体日益增大,存在的问题也日益凸显。有关统计数字表明,青少年刑事案件中70%属于
会议
笔者通过对近几年查处农村干部贪污腐败、违法乱纪案例来看,账内基本没有什么问题,“事”大都出在账外。为什么有财务公开,有正常的经济责任审计,有正规的社会项目审计参与,还会出