首页 > 范文大全 > 正文

关于SQL数据库的性能优化问题的研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇关于SQL数据库的性能优化问题的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:随着科学技术的发展,数据库中系统的数据逐渐增加,效率成为了数据库管理及开发过程中的重要问题。因此,对sql数据库的优化问题进行探讨十分必要,从对数据库的设计与其硬件方面入手,并结合SQL本身的查询、性能、逻辑结构、文件等方面进行阐述,并提出优化的具体措施,从而使数据库的性能及运行效率均能有所提高。

关键词:SQL数据库;性能优化;问题分析;提高效率

中图分类号:TP392 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.06.050

On SQL Database Performance Optimization Research

LIU fen

(Hui zhou College of Business, GuangDong, Huizhou 516008 ,China)

【Abstract】With the development of science and technology, the database system data gradually increased, efficiency becomes the

database management and the key problems encountered in development.therefore, the database optimization problem is very necessary to analyze,From the database design and hardware aspects, combined with SQL itself query, performance, logical structure, files and other aspects, and puts forward the optimization measures, so as to make the database performance and operation efficiency can be improved.

【Key words】SQL database;performance optimization;problem analysis;improving efficiency

0 前 言

数据库的性能分析及优化是较为复杂繁冗的工作,对于程序的开发人员而言,性能的提高是至关重要的。而SQL Server数据库的性能通过以下几个方面体现:SQL的请求发生之后,其结果返回的速度、处理复杂业务时的逻辑处理中运算的速度度、以及数据屏幕间进行切换的速等方面。通过统一的规划与进行系统的分析,数据库即可显示出合理的优化措施及方案,不仅提高了数据库可用性及稳定性,而且也保障了数据系统的高效、正常运行,有效地节约了系统的开销及出现瓶颈等问题,具有较大的推广价值[1]。

1 性能优化定义

数据库性能的优化是指通过优化系统的应用程序、或者是修改系统中的参数、对系统的硬件进行调整等方式。总体而言,性能优化组要是包括对数据库中的操作系统与硬件配置及关系型的管理系统配置进行的具体的分析及优化,从提提高运行效率。

2 性能优化的原理

可将SQL数据库视为独立的语言,并在数据库的终端以交互的方式进行使用,还也将其嵌入至高级程序的语言设计之中使用。性能中的查询优化指的是对原来的SQL语句进行转换,使其在功能上成为相同的SQL语句,而且执行的效率夜将会大大提高;用户进行SQL语句的书写质量的优劣情况对系统的性能十分重要:质量优的查询语句不仅能减少系统的执时间,还能提高软件的性能;相反,不好的SQL查询语句在进行数据库的访问时,将引起无谓的数据的扫描以及传输,使大量的系统资源白白耗费了。为此,对SQL的语句进行较好地优化,并最大限度的减少数据量,以便使SQL语句在执行的过程中效率得到确实的提高[2]。

3 影响数据库的性能因素分析

3.1 数据库的设计

数据库的设计人员均应根据不同的程序需要进行数据模型的不同设计,并对模型中表的结构进行正确的处理。处理的同时,还应合理对冗余的信息进行处理;与此同时,还对数据库连接的效率、数据的恢复等方面工作。数据库中视图的建立对使用的效率将产生较大的影响。

3.2 索引建立的方式及数据库中的连接运算问题

索引的建立方式是否适当、是决定数据库的性能的重要关键所在。在对数据库进行应用的过程当中,连接运算的环节是比较费时间环节,因此,在进行数据库的设计操作的同时,还应该避免出现复杂、难度大的连接运算问题。

3.3 事务的管理

事务作为数据库中的完整操作环节,其包括详细具体的操作过程,都与数据库有着密切的关系。数据生成及复制或者是修改与删除、及查询的复杂程度等方面均会对数据库性能带来一定的影响。因此,对事务的有效管理,可以实现并且确保数据的相互一致,提高性能。

4 优化SQL数据库性能的对策

4.1 进行应用优化

应用部分对数据库的性能产生的问题可能性最大。进行应用的优化,可以有效的实现监控及修改等功能,使数据库的效能实现较高化;除此之外,还可以对硬件及SQL Server数据库进行优化,减少应用的环节不会对系统的资源造成过量使用的现象。应用优化涉及对个方面的环节,包括对应用中系统锁的优化、对索引、程序的优化、对SQL语句的优化与服务器的优化及Web应用的优化等多方面的优化内容。

4.2 SQL语句的优化

应用优化主要包括:对SQL语句进行分析,并对有关查询的结果进行是否有效的认证。较低的效率查询一般都是使用大量的资源及长的时间进行运行。因此,可以通过对SQL语句进行调整,进而也对访问数据库的应用方法进行调整,对系统性能起到明显的改善作用。查询功能是数据库的操作基础环节,系统性能还受到查询速度的影响,SQL server数据库也可提供优化的查询机制,并能对查询的语句进行详细分析、最终找出最符合的查询策略,有效提高了查询的速度。但是,查询优化器对语义方面很难进行解决,因此,应该根据具体的应用进行SQL语句的优化[3]。

4.3 数据库的设计优化

4.3.1 数据库中的事务设计

数据库的事务系统由多个SQL语句所组成的逻辑单元,事务的处理及控制均由数据库的服务器来进行的,而事务的起点和终点的分界是由应用的程序实现的。因此,在进行事物的设计时,应保持数据库中的事务短,使得事务中的SQL语句得到的锁与占用得到的空间均能尽快地释放,进一步减少在处理之时所造成的系统资源出现竞争状况。

4.3.2 对经数据库的服务器返回的信息进行限制

用户对数据量大的表在选择自定义的条件查询之时,应设定相应的条件,防止用户因为错误的选择而导致的过多数据的返回现象。避免由于大量的数据在查询时,加重了数据库中服务器的负担,并造成DBMS的性能下降;数据的过多返回将会导致网络的通信量叙述增加、出现拥挤现象。如果数据的返回量高于客户机的内存时,将会导致客户机出现严重的错误。

4.3.3 减低对服务器访问的次数

当应用的程序需要进行反复的相同操作时,可借助数据的共享技术,将数据从数据库中检索后便存储到客户机中,减少对服务器的访问次数。或者是利用数据的窗口中预先存储的数据进行使用,可减去对服务器的检索操作,以更好地提高对程序的性能及效率。

4.3.4 加快屏幕的切换及数据的显示速度

为了加快屏幕的切换、加快数据的显示速度,应注意几点方面的内容:首先,尽量不在同一个屏幕内放入过多的功能操作、或者是放置复杂的、难度大的屏幕,一面对执行的速度产生影响。其次,等窗口进行显示之后,再对服务器进行数据的检索,避免出现用户对着空屏等待的现象,由此提高运行的效率。最后,在进行大量数据的检索之时,应对自数据库回到缓冲区的记录个数进行限制,以实现最佳的效果,满意的效果是用户在看到数据的窗口是被数据填满的,并有效的对屏幕进行控制,并不是在用户等待全部的数据进行检索之后,再进行数据

窗口的填充[4]。

4.4 对物理数据库的性能优化

通过把磁盘的阵列作为磁盘进行优化,因为硬件中的RAID能够允许用户进行多个磁盘的管理,因此,硬件中的RAID可以提供更合适的性能。如果使用的是操作系统中的RAID,那么其会占据到其他系统中的需求CPU周期,使用硬件的 RAID,用户可在系统打开的情况之下就能够对出现问题的驱动器进行替换。但是这种替换的优势将受到用户所购买的RAID硬件的实现方式有关。在应用物理数据库的性能优化的同时,用户还需要认真考虑有关RAID的几种类型。例如,RAID 0是比较传统的磁盘镜象,阵列中的各个磁盘均有一个或者是多个的磁盘拷贝,可以提供可靠性的保障,使得RAID 0磁盘镜象在增加写操作功能的同时,还能同时进行多个读的处理操作功能,从而使读操作性能得到较好地提高。

4.5 通过文件组进行SQL Server数据库的优化

文件组是通过对数据文件的集合的称呼。若用户的硬件系统包含较多的磁盘驱动器,就能把特定的文件及对象均定位到各个磁盘中,还可将数据库的文件进行单个或者是多个用户的自定义文件组的划分。SQL Server数据库包括了主文件组以及多个自定义的文件组,通过对文件组的创建,用户可以对查询及修改负担比较大的文件组进行相互分离,还可通过并行线程用以提高数据的访问速度,从而使文件组就在一定程度上提高了数据库的性能[5]。

4.5.1 将数据的负载平衡至较多的磁盘中

SQL Server数据库的优化,可以是用户在进行表的创建之时,可将表指定至特定的文件组当中,文件组便按比例进行填充策略。当数据记录至文件组中时,各文件将以并行的方式承接部分数据的内容,这样一来,各文件均可被存储至磁盘集或者是单个的 磁盘中,有利于提高 SQL Server数据库的性能。若需在文件组当中进行2个数据库文件的创建时,且该数据库的文件组有横跨4块磁盘现象的,就有两个文件的映射关系了,并且文件分别指向这4块磁盘文件中的数据位置,便可将数据负载平摊到各个磁盘中,提高系统的运行效率。

4.5.2 选择并行线程对表进行访问

对表进行访问之时,系统均创建了单独的、较多的线程来并行读取各文件,更好地提高查询的速度;例如,对文件组上的表进行扫描之时,可使用4个单独线程并行的方式对数据进行读取。在磁盘对表内的数据查询进行展开,使其的性能得到提高。

4.6 对硬件实行优化策略

硬件的优化,是为了确保工作量能有充分的硬件资源辅助进行,包括了对数据库的大小估计以及容量的规划等策略的优化。容量规划主要是计划系统中的容量、对用户组的预期服务的级别进行维护等内容;对系统硬件进行调整,并对SQL Server分配的资源进行确定,包括对CPU与附加内存的调整、对I/O资源以及其资源组合等内容的调整。对SQL server系统进行调整,涉及的方面有:增加何种资源、增加资源量的多少等方面;I/O的子系统对数据库的性能调整起到关键的作用;可以利用充足的内存CPU、或者是I/O资源等进行调整优化,有效地避免了较多的性能故障问题的出现[5]。

4.7 对逻辑结构进行优化

4.7.1 表结构的优化

对表结构的优化,可以有效的减少进行插入或者是删除、更新等期间,导致的性能异常现象。如果表的设计是比较规范的、灵活的话,就可以对其的结构的性能进行优化;但是表的规范化也常会造成较多的小表,这就导致应用的多连接现象,增加了性能的开销。为此,在进行数据库的设计时,应根据实际的情况,将规范化与非规范化设计相互有机结合。

4.7.2 索引的选择

索引也是构成数据库重要的数据结构、环节之一,对于数据库的设计有着十分重要的影响,使用索引,目的是为更好地提高数据系统进行查询的效率。因此,在进行查询之时,应使用索引能引用的字段进行,有助于查询时系统的效率能得到提高;将常用到的字段也应创建索引及查询,对于很少涉及或使用到的字段一般不进行索引。索引过多会降低查询的效率,也会影响到系统的性能,基于索引会占用部分物理空间,当进行更新的操作之时,索引均会被重新建立,便使数据维护的速度有所减慢。因此,在进行索引的建立时,应该要仔细地分析建立索引的可行性[6]。

4.7.3 优化连接

在对数据表进行连接的操作时,为了对查询的结果不产生影响,数据表的连接个数应该尽量的少,尽量应该先筛选之后再进行连接,从而减少了扫描的时间。同时还应尽可能地使用表的别名,这样能避免在解析的时候减少字段的歧义而引出语法的错误。

5 注意的事项

首先,通过 RAID 来改进性能进而获得较快的访问速度,同时也使数据的安全性得到增强。用户还可采用RAID技术,在确保可以使性能增益的同时,还可以使容错的等级得到保障,由此一来,用户便应该对RAID的级别进行仔细的选择。其次,是对数据的文件及事务日志应该放置在独立的I/O 控制器中的物理磁盘中,可以保障在对事务的日志进行写操的作过程中,能够确保其不会和数据库中的表并发进行的INSERT或者DELETE及UPDATE的动作出现对资源的相互竞争[7]。

6 结束语

综上所述,进行SQL数据库性能的优化方式,多种多样,应该根据实际的需要,以及具体的情况,更好地对SQL Server数据库的运行性能进行改进,确保其的稳定性、可用性及效率的改进,进一步促进我国科技能力开发的水平。

参考文献:

[1] 梁铭.SQL Server数据库性能优化[J].硅谷,2009,(2):7-13.

[2] 黄正宏.数据库查询优化的有效措施研究[J].科技创新导报,2010,(33):4-7.

[3] 朱东.基于SQL Server的查询优化[J].信息与电脑(理论版),2011,(11):15-20.

[4] 邓中亮.基于oracleo数据库与AreSDE的空间数据库取优化[J].软件,2011,32(2):32-35.

[5] 李宏著,谭娜.关系数据库SQL查询语句优化应用[J].科技创新导报,2011,(36):8-20.

[6] 杨柳.SQL Server数据库的性能分析与优化策略研究[J].科技创新导报,2011,(1):15-19.

[7] 吴纲.SQL Server大数据量数据库性能优化初探[J].武汉船舶职业技术学院学报,2010,(1):20-25.