数据交互复杂度与频度的提升,导致了数据库在运维、迁移和规模扩展进程中的性能问题。作为一项确保">企业IT基础部件健康运营的关键技术,数据库性能优化的实现路径和IT系统管理架构越来越密不可分。
在数据库成熟应用的时代,数据库的性能优化已经演变为一项相当严密的系统工程。作为企业IT基础设施的核心部件之一,数据库并不是孤立的系统,它与网络、操作系统、存储等硬件系统紧密相连,这种与其他IT部件的多重连接特性决定了数据库性能优化是一门综合技术。
在应用丛生、高度分布式的环境中,要总结出一套“放之四海皆准”的数据库性能优化方法论并不容易。但结合企业自身特色的性能优化流程却是有据可循的。在流程确立的过程之中,企业首先需要明确的问题就是,无论从什么样的角度切入,都要确保优化行为能够与IT系统的整体管理框架保持协调地联动,因为数据库的性能问题不仅仅局限在数据库内部。在大部分情况下,其优化行为都要围绕IT整体性能调优的思路展开。
数据库性能优化时首先要做的第一件事情是全局谋划。古语云:“不谋全局者,不足谋一域。”说的是如果不从全局角度考虑问题,是无法获得局部智慧的。具体到数据库性能优化,通常包含针对应用、参数、存储、硬件、网络、操作系统的优化操作。有统计显示,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,只占数据库系统性能提升的40%左右,其余60%的系统性能提升则来自于对应用程序的优化。
数据库性能优化在很多时候都需要解决数据库以外的问题,这要求实践者具有完整的知识体系,是一项非常具有挑战性的工作。
数据库性能优化需要考虑的第二件事情是要在设计时就做好风险规避。和其他IT基础组件一样,数据库性能下降很大一部分的风险是能够在数据库的设计阶段就可以规避的。因此,设计优化也就成为了数据库性能优化技术的源头和方向。企业对设计优化的不够重视主要体现在,工期紧张,开发时间短,以及系统匆忙上线后未经过充分优化和测试。
完整的数据库性能优化周期可以分为两个阶段,一是设计与开发阶段,主要负责对数据库逻辑和物理结构的优化设计,使其在满足具体业务需求的前提下,系统性能达到最佳,同时系统开销最小;二是数据库的运行阶段,其优化手段以数据库级、操作系统级、网络级为主。比较生命周期的调优成本与调优收益曲线,可以看出,性能调优的成本随软件生命周期进程而增加,而调优收益却随软件生命周期进程而减少。因此,数据库上线之前的早期测试和调优工作不仅是日后数据库健康运维的基础,同时也可以有效避免那些应用后期不必要或需要付出高昂代价的优化操作。