不更改代码的情况下如何优化数据库系统
2005-05-20 17:43
483 查看
这个问题很多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进行"外科手术" (Metalink 122812.1),改进执行计划
更新统计信息 (调整采样率/柱状图统计)
调整索引 (添加或调整合适的索引,删除不必要的索引)
创建物化试图(用空间开销来换取时间收益)
优化OS和数据库以外的其他东西
首先优化操作系统-比如核心参数的合理调整,操作系统资源的合理分配; 磁盘IO的调整,这是很重要的一部分,因为磁盘IO速度很容易造成系统瓶颈;网络资源的优化-TCP/IP的参数调整;调整Oracle初始化参数
优化器模式的设定,db_cache 参数等设定,sga 大小等参数设定,都对数据库性能有着重要的影响。合理的系统资源调度
在一些批处理操作为主的系统中,系统资源的调度是比较重要的,调度不合理,很容易造成资源争用。有的系统可能在系统创建之初调度是比较合理的,经过一段时间运行之后,可能因为数据量的变化,SQL语句的执行计划变化等会造成操作时间上的重叠,这肯定会给系统带来压力上的问题。调整数据库对象
调整pctfree ,freelist ,存储参数
调整表空间文件和数据库对象(表、索引)的磁盘分布。
cache 一些常用的数据库对象。
系统Bug问题带来的影响/升级改进性能
Oracle软件Bug多多,系统运行初期有的Bug带来的危害还不够明显,随着时间的推移,个别的Bug会给系统性能造成问题。这个时候对系统的Bug 修复已经对数据库系统进行升级就是必要的。通过升级,修正Oracle软件缺陷,同时在升级后也可能会增强数据库引擎的效率。当然,也要注意升级可能带来的不良的影响。
相关文章推荐
- 不更改代码的情况下如何优化数据库系统
- 系统管理程序中如何备份数据库、还原数据库[代码]
- 不谈架构,看看如何从代码层面优化系统性能!
- 如何优化代码节约系统资源解决重复实例化对象的问题——神奇的单例模式(C#设计模式)
- 如何从代码层面优化系统性能
- win8如何在已安装多系统的情况下更改默认开机系统
- win8如何在已安装多系统的情况下,更改默认开机系统
- 如何在不改SQL的情况下优化数据库
- 如何在不改SQL的情况下优化数据库
- 如何更改工程内最少的代码修改系统UISwitch的大小和样式
- 系统性能优化之如何查找循环操作数据库
- C#提升性能"数据库连接打开与关闭"经验分享(附:优化过的DBHelper类) 之配餐系统的开发
- js如何实现访问数据库实例代码、讲解,及其优缺点
- 命令行编译android程序,欢迎探讨命令行如何使用proguard混淆优化代码
- 转:一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定
- 如何优化JAVA代码及提高执行效率
- 如何优化C语言代码(程序员必读)
- 实例分析: 如何对比JIT优化前后的汇编代码
- 如何理解奇偶校验只能发现数据代码中奇数位出错的情况
- 百万级数据库系统分层优化——概述