不更改代码的情况下如何优化数据库系统

原创 2005年05月20日 17:43:00

这个问题很多DBA可能都碰到过吧:比如刚接手一个旧有系统,原来的厂商不允许对代码修改,或者是系统应用比较关键。不允许作修改,或者是源代码出于商业目的,进行了一定程度的加密,还有的时候可能是行政因素--领导为了避免责任,不允许你这样做,但这个时候,系统的性能上的问题还比较严重,还有其他办法怎么对系统进行优化么?

在这里我尝试总结一下可能有的途径。

针对特定的SQL进行"外科手术" (Metalink 122812.1),改进执行计划

  • 更新统计信息 (调整采样率/柱状图统计)
  • 调整索引 (添加或调整合适的索引,删除不必要的索引)
  • 创建物化试图(用空间开销来换取时间收益)

优化OS和数据库以外的其他东西

首先优化操作系统-比如核心参数的合理调整,操作系统资源的合理分配; 磁盘IO的调整,这是很重要的一部分,因为磁盘IO速度很容易造成系统瓶颈;网络资源的优化-TCP/IP的参数调整;

调整Oracle初始化参数

优化器模式的设定,db_cache 参数等设定,sga 大小等参数设定,都对数据库性能有着重要的影响。

合理的系统资源调度

在一些批处理操作为主的系统中,系统资源的调度是比较重要的,调度不合理,很容易造成资源争用。有的系统可能在系统创建之初调度是比较合理的,经过一段时间运行之后,可能因为数据量的变化,SQL语句的执行计划变化等会造成操作时间上的重叠,这肯定会给系统带来压力上的问题。

调整数据库对象

  • 调整pctfree ,freelist ,存储参数
  • 调整表空间文件和数据库对象(表、索引)的磁盘分布。
  • cache 一些常用的数据库对象。

系统Bug问题带来的影响/升级改进性能

Oracle软件Bug多多,系统运行初期有的Bug带来的危害还不够明显,随着时间的推移,个别的Bug会给系统性能造成问题。这个时候对系统的Bug 修复已经对数据库系统进行升级就是必要的。通过升级,修正Oracle软件缺陷,同时在升级后也可能会增强数据库引擎的效率。当然,也要注意升级可能带来的不良的影响。

[原创+转载]在本地没有安装mysql数据库的情况下用c++代码实现连接远程mysql数据库

注:

设计全局ER模型 数据库系统原理(2007版) 课程代码4735 笔记

设计全局ER模型

数据库系统概论(第四版 王珊)部分代码

drop table student; drop table course; drop table sc ; create table student (sno char(9) unique, sn...

在不重装系统的情况下分盘

  • 2013年09月30日 08:43
  • 14KB
  • 下载

避免重装系统的情况下,修改IDE为ACHI模式(适合修改注册表后更改BIOS依然蓝屏) 2012/1/21

前些天玩着玩着ipad觉得苹果的系统很多方面真心不错,很人性化,里面的应用也很是打破思维,颇有感慨,遂决定在小Y上装下mac os x snow leopard,进一步接触苹果的系统与应用。似乎我运气...
  • ccy0013
  • ccy0013
  • 2012年01月23日 12:15
  • 7719

百万级数据库系统分层优化——概述

网上有丰富的数据库优化方案,但是大多都是零零碎碎,系统地介绍数据库优化的很少。笔者根据自己的经验,以及参考了其他高手的优化文章,整理一份系统的优化方案。       数据库优化的目的是提...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不更改代码的情况下如何优化数据库系统
举报原因:
原因补充:

(最多只允许输入30个字)