Oracle优化概述

已有 1020 次阅读2013-2-20 14:08 |个人分类:Oracle 性能优化

Oracle优化概述


1.谁应该进行优化?
与oracle数据库相关的任何人,包括体系结构设计者,应用程序设计者,
应用程序开发者,数据库管理员,系统管理员都应该顾及性能和优化。


2.为什么要优化
数据库优化的最好方法是认真设计系统和应用程序。性能提高主要是通过优化
应用程序获得的
如果满足下列条件则您的系统很少会出现性能问题
• 硬件能够满足用户的需求
• 您的 Oracle 数据库是认真设计过的
• 您的应用程序开发人员编写了高效的 SQL 程序
如果在系统开发过程的早期就作出了错误的决策或者用户现在对系统的要求
比原来提高了,就可能需要认真考虑提高性能,优化过程进行得越晚它耗
费的时间和资源就越多


3.优化到什么程度
在开始优化时您应该对试图达到的目标有一个明确的概念,用现实世界的话
来说就是尽可能精确地量化您的目标例如
• 每天处理 10,000 个订单
• 在月末一晚上制作 250,000 份帐单报表
优化最终必须有益于用户,如果所有用户都在老式 PC 上通过速度很慢的网络访问
数据那么对数据缓冲区高速缓存的使用进行一点性能改善就毫无意义您的优化工作将察觉不到
优化是一个反复的过程 它不是一个只执行一次的活动


4.优化的目标
可衡量的优化目标
在优化 Oracle数据库环境时DBA 应该建立可衡量的优化目标否则很难
确定何时已进行了足够的优化
• 响应时间 是指用户在发出请求后用多长时间收到数据例如查询的结果
集或指更新表或生成报表所用的时间
• 数据库可用性 也是对优化目标的一个不错的衡量标准,可用性可以是备份
和恢复过程,也可以是通过关闭和启动实例来优化参数
• 数据库命中百分比 提供了一个很好的基准,根据它可以确定性能随时间提
高还是降低
• 内存使用情况 也是对优化的一个有效衡量标准,因为过多的页面交换会影
响数据库和操作系统的性能,内存使用情况也会影响数据库命中百分比


建立优化目标
• 访问最少的块数
• 将块高速缓存在内存中
• 共享应用程序代码
• 尽可能快地读写数据
• 确保用户没有等待资源
• 执行备份和内务处理而同时使影响最小

• SQL 语句访问尽可能少的 Oracle 块
• 如果需要某个块它一定是被高速缓存在内存中
• 多个用户共享相同的代码
• 当需要代码时它一定是被高速缓存在内存中
• 在不能避免读写操作的地方以尽可能快的速度完成这些操作
• 用户从来不必等待其他用户所占有的资源
• 能够以尽可能快的速度进行备份和其它必要的内务处理


5.优化步骤
建议按照以下次序实施优化
1 设计如果有可能
2 应用程序
3 内存
4 输入/输出 (I/O)
5 争用
6 操作系统
如果未达到目标,重复这个优化过程
按照这个结构进行优化的原因是此顺序中前面的改进,可以避免以后遇到问题。
例如如果您的应用程序使用大量的全表扫描则可能发生过多的 I/O 操作
,但是如果您可以重写这些查询使它们只需访问 4 个块而不是 4,000 个块,
那么就完全没有必要调整缓冲区高速缓存的大小,或重新分配磁盘文件了,
前两个步骤通常是系统体系结构设计者和应用程序开发人员的责任,但是
DBA 也可能参与应用程序的优化。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 加入社区

他的关注

意见
反馈