18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 数据库性能优化(数据库)

数据库性能优化(数据库)

时间:2022-11-19 12:30:02 | 来源:信息时代

时间:2022-11-19 12:30:02 来源:信息时代

    数据库性能优化 : 在数据库运行维护期内,随着数据规模和用户数量的增加,数据库的性能不能满足要求时,对数据库的性能进行调整优化的过程,是一项长期的系统维护任务。
数据库使用与维护必须考虑数据库的性能,对数据库性能进行监测与调整。数据库性能可以定义为资源的优化使用以及提高吞吐量并减少竞争,从而使得工作负载能够最大限度地得以处理。有效的性能监测和调整策略不仅需要DBMS的专门技术,同时也需要数据库管理范围以外的知识。处理性能问题实际上是一种遍布整个企业的行为。
影响数据库性能主要有五种因素:
(1)工作负载:向数据库管理系统所提交的处理请求定义了系统的工作负载。它由联机事务、批处理作业、分析查询及随时提交给系统的命令构成。工作负载随时有可能会产生剧烈的波动。有些工作负载可以事先预测,但有些则是不可预测的。总体工作负载是影响数据库性能的主要因素。
(2)吞吐量:定义了计算机硬件和软件处理数据的整体能力。它是I/O速度、CPU速度、机器的并行能力、操作系统和系统软件效率的综合体。
(3)资源:系统中可供支配的软件、硬件工具称为系统的资源。资源的实例包括数据库内核、磁盘空间、高速缓存控制器、微代码等。
(4)优化:优化是指通过查询的代价规则对数据库请求进行分析,从而生成对所需数据的高效访问路径。任何类型的系统都可以进行优化,但是只有关系型查询通过深入DBMS内部率先实现了优化。例如,SQL语句、数据库参数、高效的程序设计等,以保证数据库优化器能够产生最高效的访问路径。
(5)竞争:当对特定的资源请求频率非常高,且工作负载重时,就会产生竞争。所谓竞争就是工作负载的两个或更多元素试图以一种相互冲突的方式同时使用一种单一的资源的情况,比如对同一数据进行双重更新的情形。当竞争增加时,吞吐量就会降低。
由于在数据库的整个生命周期中开发周期比较短,不可能对业务需求、使用特性、数据规模等完全正确地理解与掌握,再加上运行期内业务的变化,因此,在运行期内可能会出现性能问题,需要对数据库的性能进行优化。性能调整的目标是通过最大限度地降低网络通信、减少磁盘I/O和CPU时间,使所有用户的请求都可以在规定的时间内得到响应。性能优化主要涉及到应用程序改进(业务逻辑的实现)、服务器调整和硬件的扩容。
应用程序优化的主要措施有: 调整数据访问策略(如分页查询)、增加本地数据存储(如只读数据存放在本地)等。
服务器调整涉及的面比较广,主要包括: 改变访问策略以减少资源开销、数据结构的变化(一般采取反规范化技术,增加数据冗余)、引入合适的索引、删除不恰当的索引、避免运行中的排序、尽量避免表之间的连接运算、使用存储过程、避免不必要的数据在网上传输、物理与逻辑存储策略的调整(提高I/O并行度)、系统参数调整以及操作系统的调优等。
硬件扩容主要包括: 增加CPU的处理能力、提高网络带宽、提高I/O速度、增加内存,在分布式系统的情况下,还可以增加节点。
数据库性能优化的主要步骤为:
(1)分析识别问题:分析与识别引起性能低下的主要原因,并收集数据库运行资料以确认问题。这一步需要数据库管理员认真分析数据访问策略、存储策略、处理策略,此时应充分利用数据库管理系统收集的访问信息和SQL语句分析工具。
(2)优化方案设计: 针对性能低下的主要问题,运用各种策略,设计应对方案。
(3)优化方案验证:验证优化方案是否能够解决性能问题。
(4)优化方案实施: 在运行系统上实施优化方案。
(5)跟踪与监视:优化之后,还需要运用适当的监视策略进一步跟踪系统的运行,以便及时发现新的性能问题。
由此可见,数据库性能的优化是数据库管理员的一项长期的工作。在数据库运行的初期,数据规模和用户量都比较小,性能问题不会太突出,但随着数据库系统的运行,性能问题就会凸现出来,数据库管理员就要在开发人员的协助下不断地对系统进行完善和改进,才能够满足系统吞吐量和响应时间的要求。
在数据库优化的过程中经常需要涉及到如下三个方面的工作:
(1)数据库重组织(database reorganization): 数据库运行一段时间后,由于记录的增、删、改,会使数据库的物理存储变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织或部分重组织(只对频繁增、删的表进行重组织)。DBMS一般都提供了重组织数据库使用的实用程序,帮助DBA重新组织数据库。在重组织过程中,按原设计要求重新安排存储位置,回收垃圾,减少指针链,提高系统性能,但数据库的重组织不会改变原设计的数据逻辑结构和物理结构。
(2)数据重装(reloading data): 先用系统提供的工具将数据卸下,保留数据库的结构型描述,清除库中一切数据及垃圾(即已经被做上删除标志的记录),再用系统提供的工具将卸下的有用数据重装入库中,这一过程叫做数据重装。经重装后可以减少数据库中的“碎片”记录,恢复数据库的运行效率。
(3)数据库重构(database restructuring): 当数据库系统在运行中已不能满足新的用户需求时,需要改变数据库的结构,例如,增加新的字段,或增加新的字段(或关系)型,这时便需要对数据库重新构造,简称数据库重构。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭