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

原创 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软件缺陷,同时在升级后也可能会增强数据库引擎的效率。当然,也要注意升级可能带来的不良的影响。

如何在不改SQL的情况下优化数据库

主题简介 在数据库运维中我们会遇到各种各样的问题,这些问题的根源可能很明显,也可能被某种表象掩盖而使我们认不清。所以运维面临的两大问题就是,第一我们没有看清本质,第二应用不允许修改。那么我们如何...
  • lzw5210
  • lzw5210
  • 2017年06月21日 16:10
  • 101

优化代码的几个技巧

无意看到一篇小短文,猜测作者应该是一个图形学领域的程序员或专家,介绍了在光线(射线)追踪程序中是如何优化C/C++代码的。倒也有一些参考意义,当然有的地方我并不赞同或者说我也不完全理解,原文在此,我的...
  • casiot
  • casiot
  • 2014年09月15日 01:22
  • 1666

学习数据库系统实现的两本好书

国内都出版过英文原版Database Management Systems   By Raghu RamakrishnanDatabase System Implementation  By Hect...
  • bang91
  • bang91
  • 2009年12月28日 20:02
  • 5494

一个关于防止编译器优化特定代码的问题

问题描述(为简化问题,设想的以下代码): 有1个全局变量: int a = 0; 2个线程: A线程负责对a进行写: while (1)     a++; B线程负责对a...
  • u012187684
  • u012187684
  • 2014年03月04日 20:43
  • 826

Hadoop 参数配置优化

主要参照官方给出的配置指南进行的。 hadoop.tmp.dir 默认值: /tmp 说明: 尽量手动配置这个选项,否则的话都默认存在了里系统的默认临时文件/tmp里。并且手动配置的时候,如...
  • shubingzhuoxue
  • shubingzhuoxue
  • 2015年12月09日 17:42
  • 679

网站代码该如何优化?

说到网站站内代码优化,可能有些朋友不知道该如何下手,以及该如何真正做好站内代码优化,提升网站的打开速度。并使我们网站的用户体验,能得到一个很好的提升呢?段亮认为有以下几点: 一、对JS文件的存放...
  • yuzhilin1
  • yuzhilin1
  • 2016年03月04日 19:13
  • 1161

java 重现CPU乱序执行问题

java 重现CPU乱序执行问题
  • lizhihaoweiwei
  • lizhihaoweiwei
  • 2016年01月26日 19:59
  • 645

优化代码的重要性

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45131085 工作将近一年...
  • pistolove
  • pistolove
  • 2015年04月19日 17:55
  • 6425

C中的volatile用法(允许随时都会改变的值,且不可优化)

转自: C中的volatile用法 volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化...
  • u011170660
  • u011170660
  • 2014年08月01日 22:40
  • 660

keil mdk中如何确保某一段程序不被优化掉

使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM.比如,你在ROM的0x00002000处定位了一个函数,假设为voi...
  • zhzht19861011
  • zhzht19861011
  • 2010年11月02日 09:41
  • 13871
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不更改代码的情况下如何优化数据库系统
举报原因:
原因补充:

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