当前位置:主页 > 科技论文 > 计算机论文 >

SQLserver数据库的性能优化策略

发布时间:2015-02-13 09:42

摘 要:

摘 要:在信息化环境下,各种信息系统都离不开数据库,数据库的性能也直接影响了信息管理系统的运行和应用。因此,对数据库系统进行性能优化一直是计算机领域的一个重要课题。SQL server作为windows平台下的一款主流数据库,有着广大的用户群和应用领域,因此对于SQL server数据库的性能优化研究也非常重要。本文站在数据库的结构设计和行为设计的视角,对SQL server数据库的性能优化策略进行了探讨。

关键词:

关键词:SQL server 数据库 性能优化策略

  随着计算机技术和网络技术的飞速发展,计算机网络的应用领域也在不断扩大,各种信息系统已经在人们的工作、生活中都得到了广泛的应用,特别是一些基于互联网的管理系统,已经与人们的工作、生活密不可分了。因此,这些信息数据库系统的性能也越来越受到了人们的关注,尤其是一些数据访问多、规模大、高并发的信息数据库系统。数据库系统是整个信息系统的核心部分,也是最为基础的部分,数据库的设计很大程度上关系到整个信息系统性能的优劣。

  SQL是英文structured query language的缩写,意思是结构化查询语言。SQL server是一个大型的关系数据库管理系统,是由微软公司开发推广的,也是windows平台下的一款主流数据库产品,在多种信息管理系统中得到了应用。 windows平台下的SQL server数据库具有非常高性能的设计,也能够很大程度上为系统管理者提供便捷和先进的处理方式,此外,SQL server数据库具有强大的处理功能和兼容性,能够有效保证数据的完整性和安全性,其强大的管理功能和数据处理功能也为信息管理系统提供一个数据库平台。

  对SQL server数据库进行性能优化,就是尽可能的提高数据库的响应速度和服务质量。总体来说,就是要有效提高系统响应时间和吞吐量两项指标。要优化数据库性能,,需要从数据库设计、应用程序设计和接口设计等多个方面进行,这是一个复杂的系统性工作。

  要对数据库的性能进行优化,其关键是要数据库的设计方案要科学合理,科学合理的数据模型,不但能够保障数据库系统的正常运行,而且也能够很大程度上降低代码编写和维护的难度,提高数据库系统的实际运行性能。因此,在进行数据库设计方案制定过程中,最为重要的是要充分了解用户的需求,严格按照软件工程的规范和流程来进行。

  在进行数据库设计的时候,要从多个方面采取优化策略,这些策略有机结合起来,从而设计出一个符合用户要求的高性能的数据库,具体来说,可以从以下几个方面着手。


1 数据表设计的优化策略

  数据表是数据库中一个非常重要的对象,也是其他对象的基础。一个数据库只是一个框架,数据表才是实质性内容,数据库中包含有多个数据表。在进行数据库基本表设计的时候,要注意遵循两个基本原则:一是标准化和规范化原则。数据库基本表的设计标准有几种,其中3NF标准是最为恰当和平衡的选择,因为其对能够有效提高数据库性能,也方便之后对系统进行扩展,同时还能够对一些数据冗余进行消除;二是应用数据驱动。在设计数据库基本表的时候,要使用数据驱动方式,因为数据驱动方式对于策略的变更和维护十分有利,从而有效提高系统的可扩展性,这是硬性编码不能做到的。

  索引能够很大程度上影响数据库的整体性能,因此,在设计基本表的时候要设计和选择合适的索引;同时,对于每一个索引,都要选择恰当的优化策略。

  聚簇索引又叫做簇索引,聚簇索引的页面指针指向数据页面,因此,每个基本表只能建立一个聚簇索引,而且聚簇索引的数据查找速度要快于非聚簇索引。聚簇索引是用来决定基本表中数据的物理顺序的。在创建和选择簇索引的时候,要基于几个基本原则:必须要有包含这样一种列,这种列中包含很多完全不同数据;能够返回大量结果的查询;要使用“BETWEEN”及“<”、“>”、“<=”、“>=”、“==”、“!=”等关系运算符返回的查询。

  非聚簇索引,又称为非簇索引。非聚簇索引则与聚簇索引不同,其叶级页指向表中的记录,记录的物理顺序与逻辑顺序没有必然联系。如果信息管理系统要进行数据搜索的时候需要通过多种途径来进行的话,非簇索引就能够发挥很大的作用了,其对于数据库的性能有极大的提升。并不是所有情况下都需要创建非簇索引,非簇索引的创建可以在以下几种情况下进行:一是不会返回大量结果的查询;二是有这样一种列,这种列会经常被返回精确匹配结果的条件查询所引用;三是包含大量完全不同数据的列,而且在某个列上已经建立了簇索引。

  创建索引有正反两方面的影响,正面的影响是能够有效提高系统的性能,负面的影响是造成时间和空间方面的不良反应。因此,在进行索引的设计时,设计人员应该要从多个方面进行综合考虑,达成一个良好的平衡。这也要求设计人员要杜绝创建无效索引,而且如果负面影响超过正面影响,那就应该要考虑使用临时表等替代措施来优化系统性能。


2 数据库其他对象的存放策略

  数据库中除了基本表之外,还存在很多的对象,这些对象的存储问题也是影响系统性能的重要因素。对象的存储和访问是通过I/O设备来进行的,而且通常情况下,I/O设备是大型数据库性能提升的一个瓶颈和短板,要有效提升系统的性能,就必须充分考虑这些对象的存储。

  大型系统一般不会只有一个磁盘,而是多个磁盘并存,因此要避免I/O设备给系统带来给带来了瓶颈,就要采取必要的措施,对系统中的硬件设备进行充分的使用,可以采用并行的I/O机制,让数据存放跨越多个设备,不同性质访问的数据要进行分别存放。

  在大型信息管理系统中,另一个影响系统性能的环节是事务日志。对于事务日志的存放,要将其放在单独的磁盘中,不要与其他数据文件存储在一起。因为这样做一方面可以减少系统的开销,另外一方面也有利于系统障碍恢复。

  对于访问频率高的数据和访问频率低的表进行分别存储,分别存储对于系统I/O性能的提升有着十分明显的作用。


3 查询分析设计的优化策略

  数据库应用在信息管理系统当中,系统对数据库的使用主要是用于数据查询操作。在进行系统设计的时候,应该与数据库设计结合在一起,互相呼应,有机结合。在设计整个应用系统的时候,要对系统进行优化,优化的主要操作是对查询语句进行优化。查询语句的优化要坚持一个基本原则,就是对具体问题具体分析,切不可一刀切,同时要简化逻辑读和扫描次数;另外,尽可能不用子查询,而是应该使用连接。

  其一,科学合理的设计和使用查询过程,尽可能的使用查询过程,因为存储过程的执行效率要比SQL语句高。

  其二,要尽可能的避免使用大量排序操作,因此,要在必要时采用临时表。

  其三,要对游标的使用加以限制,因为使用游标会影响系统性能。

  其四,在一般情况下,不要向客户端返回大量数据,因为这样会增加网络数据的传输量,增大系统负担,从而影响系统性能。

  其五,对于批处理语句要充分使用,同时对于重复操作要多使用参数数组。


4 基本表扩展设计优化策略

  基于3NF标准设计的基本表不但应用范围广,而且有着很强的优越性。但是,在实际应用中,基于3NF标准设计的基本表却存在一些影响系统性能的因素,这些因素这不利于优化系统,提升系统性能。具体而言,这些影响因素主要包括具体的应用,规模大的数据库以及请求访问的频度等,如果不针对这些因素进行一定的处理,就会影响对系统的优化,进而影响系统的性能。因此,在实际设计过程中,要根据这些因素来对部分基本表的行和列进行分割。同时要选择恰当的方式存储冗余数据和衍生列,对相关分割表进行合并处理等。这些策略和手段,确实是不符合3NF标准的,客观上也增加了系统的开销。但是,站在整个系统的角度,综合来进行考虑的话,这些策略和手段有利于优化整个系统,提升系统的性能。


5 锁的优化策略

  在多用户条件下,系统实现并行处理的一个非常重要的机制就是锁,这一机制的存在,让系统能够保证数据的一致性和完整性。但是锁的存在,却也存在负面影响,最主要的是影响系统的性能,因此在进行数据库系统设计和应用设计的过程中,有一项非常重要的工作就是减少和杜绝死锁的产生。要减少和杜绝死锁的产生,就必须要遵循几个基本原则:第一,在实际设计过程中,应该要根据实际问题对长事务进行适当的分解,减少排它锁的占用时间;第二,要对批处理语句进行充分的使用,尽可能的减少在事务执行过程中的交互,避免人为控制事务的长短。

  有些数据库应用系统的访问频率高,而且并发度也很高,对于这样的数据库系统,应该要使用一些对应的方法和手段来优化整个系统。比如说,对于每个查询使用超时机制,科学合理的使用行锁、页锁和表锁,使用带约束的连接等,这些措施都能够有效避免死锁的产生。


6 结语



本文编号:14524

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/14524.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户5cd4c***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com