不更改代码的情况下如何优化数据库系统
这个问题很多DBA可能都碰到过吧:比如刚接手一个旧有系统,原来的厂商不允许对代码修改,或者是系统应用比较关键。不允许作修改,或者是源代码出于商业目的,进行了一定程度的加密,还有的时候可能是行政因素--领导为了避免责任,不允许你这样做,但这个时候,系统的性能上的问题还比较严重,还有其他办法怎么对系统进行优化么?
在这里我尝试总结一下可能有的途径。
针对特定的SQL进行"外科手术" (Metalink 122812.1),改进执行计划
- 更新统计信息 (调整采样率/柱状图统计)
- 调整索引 (添加或调整合适的索引,删除不必要的索引)
- 创建物化试图(用空间开销来换取时间收益)