基于MS SQL SERVER数据库的性能优化

2009-02-11 10:02
新媒体研究 2009年1期
关键词:性能优化数据库

刘 畅

[摘要]通过对E-START股票交易系统的调整和优化,实现缩短查询响应时间,系统的客户端查询速度也得到明显的提高。

[关键词]数据库 性能优化 SQL Server

中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2009)0110051-01

随着现代计算机科学技术的发展和信息应用系统信息量的增大,数据库已逐步成为计算机信息系统和计算机应用系统的基础和核心,而数据库性能问题的重要性也越来越引起人们的关注。这样,提出了基于SQL Server数据库应用系统如何进行性能调整的问题。性能调整的步骤如下:

1.优化业务逻辑;2.调整数据结构设计;3.调整应用程序结构;4.优化数据库的逻辑结构;5.优化数据库的操作;6.数据库服务器性能调整。

一、基于E-START股票交易系统的数据库性能调整分析

针对在数据库使用过程中出现的问题,结合现有的数据库调整措施和优化技术,对原E-START系统数据库制定了以下调整步骤:

1.优化数据库设计调整。针对出现的系统运行效率低的问题,结合已有的业务逻辑,对原系统的相应数据库逻辑设计和物理结构做出合理的调整。

2.客户端应用程序调整。针对客户的遇到的查询等待问题,对应用程序中影响查询效率的不合理的设计进行调整,包括:SQL查询语句的优化、应用程序的调整、合理地增加存储过程。

3.服务器性能调整。针对使用过程中系统资源消耗大、运行成本高的问题,通过对数据库服务器硬件性能瓶颈的分析和调整及对SQL Server与操作系统参数的合理配置优化服务器性能。

二、数据库设计调整

(一)逻辑数据库设计调整

可以从以下几个方面来精练数据库的逻辑设计:

1.在适当的地方采用反规范形式;2.在适当的地方分割表;3.在适当的地方把表进行分组放入数据库;4.执行完整性约束。

(二)调整物理数据库设计

对本项目物理数据库设计的调整两条关键性的指导原则如下:将序列访问的文件分离到专用的磁盘上,并通过将数据文件分散到各个磁盘上而允许并行I/O。

1.数据库功能分配。该E-START股票交易系统升级项目采用的开发平台为Windows 2000,数据库为Microsoft SQL Server 2000。E-START系统的原数据库包括两个数据库实例。

对SQL Sever 2000系统功能上可以按四种系统数据库和应用数据库进行功能分配:master数据库、tempdb数据库,model数据库、msdb数据库、mbr_db应用数据库和E_START应用数据库。

master数据库记录SQL Server系统的所有系统级别信息。tempdb数据库保存所有的临时表和临时存储过程,还满足任何其它的临时存储要求。默认情况下,在SQL Server在运行时tempdb数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。model数据库用作在系统上创建的所有数据库的模板。msdb数据库供SQL Server代理程序调度警报和作业以及记录操作员时使用。

2.优化 tempdb 性能。对tempdb 数据库的物理位置和数据库选项设置的调整包括:

(1)使用SQL Server企业管理器将tempdb数据库设为允许自动根据需求进行扩展。(2)将tempdb数据库文件的初始大小由原来的16MB调整到30MB,这是比较合理的大小,避免了当需要更多空间时文件自动扩展。(3)将文件增长增量百分比由原来的10%调整到20%,以避免tempdb数据库文件按太小的值增长。(4)建议将tempdb数据库放在快速I/O子系统上以确保好的性能。

(三)创建索引

可以在不影响数据库架构和应用程序设计的情况下除去、添加和更改索引。高效的索引设计对获得好的性能极为重要。正因为如此,应该尽量试验不同的索引。索引优化向导可分析查询并建议应该创建的索引。

关于创建索引的建议如下:

1.将更新尽可能多的行的查询写入单个语句内,而不要使用多个查询更新相同的行。仅使用一个语句,就可以利用优化的索引维护。

2.使用索引优化向导分析查询并获得索引建议。

3.对聚集索引使用整型键。另外,在唯一列、非空列或IDENTITY列上创建聚集索引可以获得性能收益。

4.在查询经常用到的所有列上创建非聚集索引。这可以最大程度地利用隐蔽查询。

5.物理创建索引所需的时间在很大程度上取决于磁盘子系统。

三、E-START股票交易系统客户端应用程序调整

(一)系统架构的调整

由于本项目要将原有的VB6.0系统升级到VB.NET,必然导致整个系统架构的调整,即把系统划分为各种不同功能的层次结构,在对原有业务逻辑进行充分调研后,调整后的系统架构包含以下几个层次:

1. UI(用户接口)层:保持与原VB6.0系统中E-Start客户端界面一致;2. Controller(控制)层:主要功能是接收UI层的请求,根据请求调用相应的业务逻辑,并把业务逻辑处理的结果返回给客户端;3. Business(业务)层:这层主要处理实际的业务逻辑,可以通过调用Entity(实体)层对数据库进行访问。本层可以重用;4. Entity(实体)层:处于业务层与数据库之间,为业务层提供数据访问操作;5. Framework(架构)层:提供必要的错误处理、日志、XML处理、通信服务、ExcelTalk和Spread的通用功能。

(二)优化SQL语句

1.SQL语句的优化分析。选择最有效率的表名顺序;WHERE子句中的连接顺序;用EXISTS替代IN;优化GROUP BY。

2.使用优化器优化SQL语句。由于SQL语言是面向结果而不是面向过程的查询语言,所以一般支持SQL语言的大型关系型数据库都需要使用一个基于成本的优化器,为即时查询提供一个最佳的执行策略。对于优化器,输入是一条查询语句,输出是一个执行策略。这个执行策略是执行这个查询所需要的一系列步骤。数据库的反应速度经常就体现在这一个优化算法上。

四、结论

对数据库性能问题进行深入研究,提出关于数据库性能调整与优化的具体方法和措施,对于解决数据库瓶颈了保证数据库稳定高效运行具有关键作用,也有着良好的理论与应用价值。从某一具体项目来看,服务器参数配置,SQL语句优化和存储过程使用都是常用的调整技术,但就一般性的原则来说,数据库性能调整问题是贯穿数据库应用系统整个生命周期的活动,从系统规划、程序编写、系统测试、运行维护都需要涉及性能调整技术。

参考文献:

[1]Art Taylor著,JDBC数据库编程与J2EE,电子工业出版社,2004.

[2]朱庆伟、吴宇红,一种对象/关系映射框架的分析和应用,电子科技,2004.

[3]田珂、谢世波、方马,J2EE数据持久层的解决方案,计算机工程,2003.

猜你喜欢
性能优化数据库
数据库
SQL Server数据库性能优化的几点分析
Web应用的前端性能优化
数据库
Oracle数据库性能调整与优化分析
数据库
数据库