浅谈数据库存储结构和效率优化

来源 :科技与生活 | 被引量 : 0次 | 上传用户:saood
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要 效率是计算机方面的工作者需要着重注意的问题。不管是在程序开发,还是数据库的设计中,效率问题和安全问题是需要并重的。本文就数据库的结构和如何提高数据库工作效率(本文都以SQLServer为例)做了基本的讨论,因为唯有高效率的数据层才能让上层的工作程序能够得到最快的相应,缩短用户等待的时间。
  关键词 数据库;效率;优化
  中图分类号 TP399 文献标识码 A 文章编号 1673-9671-(2013)012-0142-01
  1 数据库组织结构
  数据库的性能优化直接影响到整个数据库应用系统的有效运行。要想优化数据库的性能,首先就必须要对数据库的组织结构有很清楚的了解。不管是什么版本的SQLSelver在其数据存储的组成结构上都是一样的,它主要由以下几个部分组成:
  1.1 数据库文件
  1)在数据库系统当中,数据是重心,所以它必定包含有数据库文件。数据文件记录有用户存储的基本数据、对象以及操作日志。根据这些存储内容的不同,可以把数据库文件大致的分为三类。其中最重要的要属主要数据库文件(PrimaryDatabaseFile),它的后缀名为.MDF。在一个数据库当中可以存在有一个或一个以上的数据库文件,但是主要数据库文件只能有一个,且这些数据库文件只能被一个数据库所拥有。它们的作用是存储数据库的启动信息、部分或全部数据。
  2)次要数据库文件(SecondaryDatabaseFile),后缀名为.NDF。它的主要作用是存储在主要数据库文件当中为存储的多余数据和数据库对象,它在数据库当中可以存在多个,但也不是必须存在的。它存在的优点在于可以将数据分别存储在不同的物理磁盘上,以提高数据的存储、读取效率;还有就是当主要数据文件的大小超过系统限制时,就必须使用它来存储数据。
  3)事务日志文件,它的扩张名为.LDF。它的作用是记录所有操作(比如插入,删除,更新的操作),这样的话当数据损坏时能够通过事务日志实施补救措施。在每一个数据库中至少都存在有一个事务日志文件,且允许存在多个。
  1.2 数据库文件组
  通过数据库文件组,数据库能够很好的对数据文件进行分配和管理。和数据库文件一样,文件组也有主、次(PrimaryFileGroup、SecondaryFileGroup)之分。数据库中的每一个文件都只能存在于一个文件组当中,而一个文件组也只能被一个数据拥有。值得一提的是事务日志文件是不能被分配到任何一个的文件组中。在主要文件组当中,它存储了系统表,以及在数据库初始化阶段,所有的未分组文件都被分配到了这里。
  1.3 数据库文件空间的分配
  在SqlServer中,它的日志文件是通过具体的记录明细组成,与之不同的数据文件是划分为多个不同的区域和页面。“页”是SQLServer中存储数据的最基本单位,它的大小都为8KB,每页中的前96个字节为页头,用于存储特殊数据。在实际对表的插入和更新操作时,数据行不能够跨页。8个连续的页被称为簇,大小为64KB,一个表或是索引当中至少存在一个簇。
  2 数据库优化措施
  2.1 物理结构的优化
  数据库中的数据最后始终是存放在物理磁盘上的,所以通过对数据库物理结构进行优化是提高数据库效率的一个重要方式。对物理存储结构优化虽然并不能够减少对物理存储的读写次数,但却可以使这些读写尽量并行,减少磁盘读写竞争,减少不必要的物理存储结构的扩充,从而系统效率得以提高。通过合理的方式来分配数据的存储空间是对其物理结构进行优化的重要途径,这样可以并行的对数据进行访问,减少磁盘读写竞争带了的效率低下问题。
  2.2 逻辑结构的优化
  1)规范表结构。使表尽可能的规范化,能够避免在对它进行数据操作时可能会发生的异常性能,如果规范化是在对实体有了相当了解的基础上完成的,那么表设计就足够灵活,但是规范化常导致许多小表,而使应用面临着相当多的连接,会增加性能上的开销。所以,在设计数据库时,需要根据实际的具体情况,采用规范化设计和有选择地采用非规范化化设计。
  2)科学的建立和使用索引。索引固然能够大幅度的改善对数据的查询效率,可是这大大的增加了存储量,也降低了对表的插入效率。所以,不科学的建立和使用索引会导致数据库的工作效率降低。正是因为如此,所以我们在实际的工作当中,需要对数据库的操作语句进行统计分析,根据具体的需求性合理的建立、使用索引。同时在使用索引的时候,要尽可能的避免对索引列的计算操作,也要避免使用NULL。
  3)合理的使用查詢语言。由于排序操作会影响数据库的效率,所以所以尽量减少排序和分组排序操作。要是因为功能要求,必须使用排序操作,就尽量的在索引列上进行,因为这样能提高排序的速度。如果对于查询结果没有唯一性的要求,最好使用UNIONALL代替UNION。在使用WHERE进行查询过滤时,最好是让过滤数量最多的条件放在最前面,还要尽可能的避免用NOT/OR进行条件连接。
  4)合理使用锁与事务。在事务进行中需要最大限度避免部分耗费时间的交互式操作,从而减少事务进程的耗时;再多数据进行操作时,最好的做法是在这查询语句中使用条件判断语句,使这些数据操作语句尽可能涉及到较少的记录,从而提高事务的处理效率;在事务中包含数据修改的时候,它会启动独占锁,避免其他程序读取数据,造成数据混乱。所以,为了提高事务的工作效率,要让事务尽可能的精简。
  3 结束语
  总而言之,作为计算机工作者,应该认真的研究数据库的存储结构,通过优化SQL Server数据库来提高其应用性能。另外,在使用数据库优化技术的时候,必须认真考虑选用什么样的优化技术,以此来解决数据库的应用瓶颈,并实现数据库运行效率的提高。
  参考文献
  [1]华蓓,杨柳.SQLServer数据库性能优化探究[J].现代计算机(专业版),2008(07),93-94.
  [2]宋振会.SQLServer2000基础教程[M].北京:清华大学出版社,2006.
  [3]张璞.大型数据库应用系统中的数据库性能优化方法[J].电脑开发与应用.2004,11(17).
  [4]胡百敬.SQL Server性能调校[M].北京:电子工业出版社.2005.
  [5]杨正洪,郑齐健,郑齐心.SQL SERVER 7 关系数据库系统管理与开发指南[M].北京:机械工业出版社.2000.
其他文献
3月30日,青海省电机工程学会“2011年学术年会暨第三届青年科技学术论坛”在西宁召开。青海省电机工程学会副理事长、学术委员会主任、省电力公司副总经理祁太元,学会副理事长
对于交叠多项式反演方法中较多或大量数据缺失、以及未结合电离层传播特性的数据插值处理导致的剖面计算误差大幅增大,甚至错误的问题,在对交叠多项式电离层剖面反演方法理论
认识论问题在科西克的《具体的辩证法》中占有重要的地位,科西克在书中对近代自然科学兴起以来蕴藏于自然科学和社会科学中的认识论问题进行了细致的批驳。他基于对实在的理
为了研究实际海水环境下螺旋桨转速及海水流速对舰船腐蚀静电场的影响,提出了一种层流介质条件下腐蚀静电场的求解方法.结合流体力学及电化学相关理论,建立层流状态下的曲面
据外国媒体报道,科学家研发出一种会说话的3D式交互手套,与人类优雅的声音相比之下,其发音声似电影复仇里黑武士的神秘声音,未来或可实现用手势唱歌。研究者的初衷是帮助失去语言能力或有语言交流障碍的人“说话”,它让传统意义上不能讲话的人发出声音,但又不同于手语,因为使用者不必特意去学习手势的含义。随着研究的深入,科学家们将开发手套的音乐功能,从而让人们用手势唱歌。有研究称,手势不仅由骨骼肌肉驱动,而且受
4月15日,西藏科协全区蔬菜种植技术培训班开班。西藏科协党组副书记、主席仓珍,西藏自治区农科院副院长张明兰出席开班典礼。
1月12至13日,广东省湛江市徐闻县农业科普大集训,乡村处处田间地头热闹非凡,从早到晚前来学习的农村青年络绎不绝。他们利用冬忙时期抽空进行充电,让广大农民群众能在农作物绿叶茂盛时学习到实用高效生产技术,掌握更多农业科技知识,促进明年的产业做准备。  举办农业科普大集训是徐闻县开展“科普之冬”活动的一项重要内容,由徐闻县科协牵头,南山镇、前山镇、龙塘镇等8家农作物栽培技术协会,分别在全县各地同期开展
摘要:以在我国造纸工业最具代表性的一家制浆造纸联合工厂为研究对象,采用“造纸和纸制品生产企业温室气体排放核算方法与报告指南”和温室气体核算体系计算工具的方法,研究了温室气体种类、核算边界和方法、工厂能耗和碳排放总量以及碳强度。结果表明,2014年该工厂碳排放总量为430496.772 t CO2,不包含生物质能源产生的碳排放;基于工厂的纸浆碳强度为0.228 t CO2/t风干浆,为基于产品获得的
五年来,吉林省科协紧紧围绕吉林省委、省政府中心工作,坚持“三服务一加强”的工作定位,团结带领全省广大科技工作者,自觉肩负起提高自主创新能力、建设创新型国家的历史使命,发挥
埃博拉是一种十分罕见的病毒,1976年在苏丹南部和刚果(金)的埃博拉河地区被发现,之后引起医学界的广泛关注和重视,“埃博拉”由此而得名。埃博拉病毒是一种能引起人类和灵长类动物