正在阅读:数据库性能优化方法与实用建议数据库性能优化方法与实用建议

2007-09-05 16:24 出处:PConline 作者:网络文摘 责任编辑:gongjianhui

  


  数据交互复杂度与频度的提升,导致了数据库在运维、迁移和规模扩展进程中的性能问题。作为一项确保企业IT基础部件健康运营的关键技术,数据库性能优化的实现路径和IT系统管理架构越来越密不可分。

  在数据库成熟应用的时代,数据库的性能优化已经演变为一项相当严密的系统工程。作为企业IT基础设施的核心部件之一,数据库并不是孤立的系统,它与网络、操作系统、存储等硬件系统紧密相连,这种与其他IT部件的多重连接特性决定了数据库性能优化是一门综合技术。

  在应用丛生、高度分布式的环境中,要总结出一套“放之四海皆准”的数据库性能优化方法论并不容易。但结合企业自身特色的性能优化流程却是有据可循的。在流程确立的过程之中,企业首先需要明确的问题就是,无论从什么样的角度切入,都要确保优化行为能够与IT系统的整体管理框架保持协调地联动,因为数据库的性能问题不仅仅局限在数据库内部。在大部分情况下,其优化行为都要围绕IT整体性能调优的思路展开。

  数据库性能优化时首先要做的第一件事情是全局谋划。古语云:“不谋全局者,不足谋一域。”说的是如果不从全局角度考虑问题,是无法获得局部智慧的。具体到数据库性能优化,通常包含针对应用、参数、存储、硬件、网络、操作系统的优化操作。有统计显示,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,只占数据库系统性能提升的40%左右,其余60%的系统性能提升则来自于对应用程序的优化。

  数据库性能优化在很多时候都需要解决数据库以外的问题,这要求实践者具有完整的知识体系,是一项非常具有挑战性的工作。

  数据库性能优化需要考虑的第二件事情是要在设计时就做好风险规避。和其他IT基础组件一样,数据库性能下降很大一部分的风险是能够在数据库的设计阶段就可以规避的。因此,设计优化也就成为了数据库性能优化技术的源头和方向。企业对设计优化的不够重视主要体现在,工期紧张,开发时间短,以及系统匆忙上线后未经过充分优化和测试。

  完整的数据库性能优化周期可以分为两个阶段,一是设计与开发阶段,主要负责对数据库逻辑和物理结构的优化设计,使其在满足具体业务需求的前提下,系统性能达到最佳,同时系统开销最小;二是数据库的运行阶段,其优化手段以数据库级、操作系统级、网络级为主。比较生命周期的调优成本与调优收益曲线,可以看出,性能调优的成本随软件生命周期进程而增加,而调优收益却随软件生命周期进程而减少。因此,数据库上线之前的早期测试和调优工作不仅是日后数据库健康运维的基础,同时也可以有效避免那些应用后期不必要或需要付出高昂代价的优化操作。

  下面,编者将以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议。

  1 数据库设计

  要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案。在实际工作中,许多SQL Server方案往往是由于数据库设计得不好导致性能很差。所以,要实现良好的数据库设计就必须考虑这些问题。

  1.1 逻辑库规范化问题

  一般来说,逻辑数据库设计会满足规范化的前3级标准:

  1.第1规范:没有重复的组或多值的列。

  2.第2规范:每个非关键字段必须依赖于主关键字,不能依赖于1个组合式主关键字的某些组成部分。

  3.第3规范:1个非关键字段不能依赖于另1个非关键字段。

  遵守这些规则的设计会产生较少的列和更多的表,因而也就减少了数据冗余,也减少了用于存储数据的页。但表关系也许需要通过复杂的合并来处理,这样会降低系统的性能。某种程度上的非规范化可以改善系统的性能,非规范化过程可以根据性能方面不同的考虑用多种不同的方法进行,但以下方法经实践验证往往能提高性能。

  1.2 生成物理数据库

  要想正确选择基本物理实现策略,必须懂得数据库访问格式和硬件资源的操作特点,主要是内存和磁盘子系统I/O。这是一个范围广泛的话题,但以下的准则可能会有所帮助。

 
这些令人意想不到的黑客藏身之处 你猜对几个? 受不了多愁善感的天气?那就选部好片宅在家 追求极致的体验 神画智能影院F1 Pro新品评测 斐讯与他的0元购:一个猜到开头却猜错结尾的故事 不好意思 你在电脑上干了什么我们都知道!
键盘也能翻页,试试“← →”键

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
热门排行

服务器论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品