SQL Server 2008数据库设计与优化

2015-12-07 11:08布合力其木·艾尔
电脑知识与技术 2015年6期
关键词:数据库系统信息管理系统内存

布合力其木·艾尔

摘要:当前,企事业单位日常工作越来越离不开各种信息管理系统的支持,而数据库性能优化问题则长期得不到良好解决。该文针对信息管理系统运行中SQL Server 2008数据库瓶颈问题进行分析研究,提出数据库性能优化和性能调整方案,对促进信息管理系统的高效应用有着十分重要的现实意义。

关键词:SQL Server 2008数据库;数据库优化;性能优化

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)06-0003-03

SQL Server 2008数据库性能对其可用性和可靠性有着重要影响,大部分数据库系统在长期运行的环境下都会产生性能问题,这些性能问题包括数据库服务器、内存、硬件设备、软件系统等多个方面。由此,对SQL Server 2008数据库系统进行性能优化和调整,对于促进数据库系统的高效运行有着重要左右。SQL Server 2008数据库的性能优化与调整设计多个层次和不同方面,必须进行统一规划,分步实施,再根据系统分析做出适当调着,这样能够有效提高数据库系统的可用性和稳定性,彻底解决性能瓶颈问题,从根本上节约系统开销。

1 SQL Server 2008数据库优化的目标

1.1 提高吞吐量

SQL Server 2008数据库系统吞吐量指的是规定时间内服务器能够处理的数据总数,即每个单元时间内实现的工作量,单元时间以秒计算,该值越高代表吞吐量越高。数据库系统吞吐量的提高主要包括两种方法:一是在相同的数据资源环境下产生更多工作量;二是降低总体反应时间,实现完成工作量速度的提高,此时可以增加用户等待的资源,例如增加CPU数量等。在同一个SQL Server 2008数据库系统中,提高吞吐量和缩短反应时间相互对立。如果延长反应时间,则吞吐量高;如果缩短反应时间,则吞吐量低。多个用户在相同时间内使用数据库系统,每个用户的吞吐事务量量会更大,但要等待的时间却需要延长。相反,如果减少在相同时间内使用数据库系统的用户数量,每个用户的反应时间会缩短,但吞吐事务量的总数也将降低。

1.2 缩短响应时间

SQL Server 2008数据库系统响应时间指的当用户完成最后一个提交指令动作后,全部数据呈现在显示器上的所需时间。系统响应时间通常以秒计算,数值越低越好。数据库系统的响应时间本质是用户等待终端后台处理事务量耗费的时间,也是用户当用户出现被处理事务直观反应时的时间量。SQL Server 2008数据库系统的响应时间包括服务时间和等待时间,系统服务时间与用户等待时间的总和作为系统响应时间。由此可见,缩短数据库系统响应时间主要包括两种方法:一是提高数据库的吞吐量,降低系统服务时间;减少同时访问数据库的用户数量,降低用户等段时间。

1.3 支持更多用户

在对SQL Server 2008数据库系统进行调整配置时,必须考虑到该数据库系统与其他系统、客户端的连通能力。对于为了提高与大量客户连通能力而调整数据库系统的操作来说,终端内存也是不可忽视的重点因素。管理员需要明确了解用户对终端内存的使用需求,保证在高峰时期内用户对数据库系统的操作不会溢出。此时,系统管理员可以增加一些内存配置,以满足用户的访问需求,但需要实时监控操作系统资源变化情况。同时,系统管理员也可以根据自己的实际工作经验对用户所需系统资源进行判断,尽量控制用户对系统资源的需求量,时刻监控资源使用情况。随着用户数量的不断增加,系统管理员要重新调整资源分配量,确保做到心中有数。

1.4 提高容错能力

对于SQL Server 2008数据库系统来说,容错能力是体现系统性能的重点。对于中大型企业来说,数据库系统的停止运行在任何情况下都是灾难性的。因此,系统管理员需要做到定期检查和备份数据库,以此来提高数据库系统的容错能力。当对SQL Server 2008数据库系统的容错能力要求较高时,数据库系统的优化调整必须注意以下两点:一是数据库系统的配置应该选择RAID磁盘阵列,减少磁盘阵列发生故障的次数;二是应该配置ECC内存来确保数据库系统的容错性。对于要求SQL Server 2008数据库7*24小时不间断运行的企业来说,系统管理员要及时配置冗余备份系统,确保当主机停机时备用系统能够立刻启动。

1.5 缩短加载时间

很多SQL Server 2008数据库系统运行有着以下需求:白天数据库系统正常运行,夜间某个时段将部分数据量上载到系统中,使系统能在第二天对其进行处理。通常情况下,数据上载时间是有限且固定的,在这段时间内必须完成。如果要确保系统上载数据对时间控制的要求,系统管理员需要额外配置硬件设备,导致整体成本的提高。因此,系统管理员需要对I/O子系统进行适当调整,进而缩短数据加载耗费的时间。但是,I/O子系统的调整也可能会对系统其他方面带来影响,在缩短数据加载的同时,及时优化数据库系统运行性能,其影响程度可降至最低。

2 SQL Server 2008数据库常见的瓶颈问题

2.1 CPU问题

CPU是支持终端运行的重要设备,如果CPU运行长期处于极限状态,那么CPU就成为了整个系统的瓶颈问题,尤其是同一时间内用户对系统资源进行访问时,CPU的计算处理能力至关重要。一般情况下,虽然由操作系统内核负责分配CPU资源给SQL Server 2008数据库系统使用,但当进程较多时,很容易带来CPU“卡死”的问题。

2.2 内存问题

当计算机系统运行时,请求数据和等待数据全都暂时存储在系统内存中。如果系统内存不足,很容易造成高速缓冲区命中率低,用户请求的数据不再缓冲区中,使计算机操作系统频繁换页,进一步增加了I/O子系统的开销,最终出现数据库系统瓶颈问题。

2.3 存储设备问题

存储SQL Server 2008数据库系统数据信息的设备包括CD-ROM驱动器、硬盘驱动器等。系统在单元时间内处理I/O数量是固定不变的,当CPU运行中要求I/O速率超过系统速率时,就会带来存储设备瓶颈问题的发生。

2.4 网络传输问题

当网络负荷量过大,网络数据传输速度无法达到网络部件提出的需求时,网络瓶颈问题就会出现。只有降低SQL Server 2008数据库系统的吞吐量,延长响应时间,才能解决该问题。

3 SQL Server 2008数据库数性能优化的实施

3.1 优化数据库设计

要实现SQL Server 2008数据库系统的最佳性能,关键在数据库设计时要有一个完善的设计方案。数据库设计方案要先于信息管理系统开发之前完成。虽然SQL Server 2008数据库系统本身已经针对自身进行了性能调节,但如果数据库设计存在结构问题,后期无论如何对数据库系统进行性能优化和调整都无法取得良好效果。因此,只有确保数据库设计的逻辑设计与物理设计功能完善,结构合理,才能真正提高SQL Server 2008数据库系统性能。

3.2 优化应用程序结构

在信息管理系统开发之前,要根据用户实际需求设计SQL Server 2008数据库体系结构。传统的C/S架构模式适用于用户数量少、开发规模小、网络运行环境安全的单一数据库设计;如果用户数量较多,系统资源有限,不能时刻确保网络运行环境安全,在高峰时期会出现大量客户提出访问请求的情况下,可以采用多体系B/S架构模式完成数据库设计。

3.3 优化应用程序

据调查研究显示,对SQL Server 2008数据库硬件设备、操作系统、网络环境和数据参数的优化获得的性能提升只占总体性能提升的40%左右,剩余60%左右的数据库系统性能提升全部来源于对应用程序的优化和调整。应用程序的性能优化包括两个方面:SQL语句和源代码。SQL语句占用数据库系统资源的80%左右,应用程序对数据库系统的请求的实质是SQL语句对数据库系统的请求,SQL语句的处理效率直接对数据库系统性能产生影响。因此,对不合理的SQL语句进行优化调整能够切实提高数据库系统的内存命中率,降低网络带宽占用比,从而进一步显著改善数据库系统性能。

3.4 调整内存分配

SQL Server 2008数据库系统内存包括可共享内存、运行时内存和永久性内存,这三种内存的合理分配使用才能实现最优性能。通常情况下包括两条调整原则:一是使分配的内存获得最大收益,致力于解决利益最大化的问题;二是使分配的内存之间竞争最小化,数据库瓶颈问题主要是延迟等待,应该尽可能解决这个问题。

3.5 优化操作系统性能

SQL Server 2008数据库服务器的性能与操作系统实际性能有着直接联系。因此,针对操作系统进行优化调整的目的是为了减少内存交换和分页。如果必须以增加内存交换和分页来达到获取更多内存的目的,不但无法产生良好效果,甚至会进一步降低数据库系统性能。由此可见,对操作系统的优化调整包括以下几个方面:首先,为SQL Server 2008数据库规划资源;其次,更换调整系统内存配置;最后,在数据库服务器中设置进程优先级别。

4 产品订单信息管理系统数据库优化设计方案

4.1 系统开发模式

本文以某企业产品订单信息管理系统为例,分析了在系统开发设计中如何做到优化数据库性能。

目前,在信息管理系统设计中普遍采用的开发模式包括C/S模式和B/S模式两种,分别是客户机/服务器和浏览器/服务器模式。C/S开发模式能够将任务进行合理分配,在分别给客户机端和服务器端,这种方式充分利用了两端硬件设备资源,同时降低了系统资源开销,早期开发的信息管理系统大多采用C/S开发模式。B/S开发模式是针对C/S模式的改进,可以实现通过浏览器呈现用户界面,部分事务逻辑能够在浏览器前端实现,主要事务逻辑在服务器后端实现,以此形成了三层体系架构方式。因此,产品订单信息管理系统应该采用B/S开发模式,确保系统界面友好,可靠性强,易于维护。

4.2 系统开发平台

1)服务器端

操作系统:Windows 7

数据库系统:SQL Server 2008

2)客户端

操作系统:Windows 7

开发语言:SQL Server 2008

4.3 数据库设计

企业产品订单信息管理系统的数据库设计是否完善对系统性能有着重大影响。由此,系统数据库设计应该借鉴大型数据库的设计原则和流程。在数据库系统的整个生命周期中,设计最初时期要争取实现数据库性能优化的效益最大化,因此,企业产品订单信息管理系统的数据库模式采用3NF标准,允许出现部分冗余数据。

数据库表设计中包括用户基本信息表、用户详细信息表、产品基本信息表、产品详细信息表、订单基本信息表和订单详细信息表,这6张数据库表共占1M存储空间。

用户基本信息表:主键是用户编号。表中包括了在该企业订购过产品的用户信息。

用户详细信息表:主键和外键都是用户编号。该表存储在企业订购过产品的用户的个人信息,包括姓名、性别、手机号码、收货地址和邮箱等。

产品基本信息表:主键是产品编号。表中包括各种产品的采购时间、采购数量、库存数量、采购人员信息。

产品详细信息表:主键和外键都是产品编号。该表用于存储产品详细信息,包括产品名称、所属类别、保质时间、价格变动等。

订单基本信息表:主键是订单编号,外键是用户编号。该表用于存储每个订单产生的精确时间、用户编号、订单受理人员等信息。

订单详细信息表:主键和外键都是订单编号和产品编号。该表用于存储每一笔订单生成时产生的产品编号、产品名称、产品订购数量等信息。

参考文献:

[1] 陈忠菊. 试论SQL server数据库的优化探索[J]. 科技创新导报,2015(14):41.

[2] 王强. 大数据背景下基于B-树结构的SQL Server数据优化策略研究[J]. 电脑知识与技术,2015(14):4-5.

[3] 陈林琳. SQL Server数据库系统的性能优化策略研究[J]. 网络安全技术与应用,2014(12):37+39.

[4] 王学慧. 基于SQL Server的数据库应用系统性能优化研究[J]. 电子科学技术,2015(1):95-99.

[5] 周涛,杨丽红,张军, 等. SQL Server2005大型数据库优化之表分区详解[J]. 云南大学学报:自然科学版,2013(S2):59-62.

猜你喜欢
数据库系统信息管理系统内存
三维可视化信息管理系统在选煤生产中的应用
信息管理系统在工程项目管理的应用
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
基于三维TGIS的高速公路综合信息管理系统
“春夏秋冬”的内存
数据库系统shell脚本应用
微细铣削工艺数据库系统设计与开发
实时数据库系统数据安全采集方案
核反应堆材料数据库系统及其应用
基于内存的地理信息访问技术