论文部分内容阅读
摘要 效率是计算机方面的工作者需要着重注意的问题。不管是在程序开发,还是数据库的设计中,效率问题和安全问题是需要并重的。本文就数据库的结构和如何提高数据库工作效率(本文都以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.
关键词 数据库;效率;优化
中图分类号 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.