Oracle中的中间件体系结构多层调整
2007-05-11 12:21:46 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄧ粯銇勯幒瀣仾闁靛洤瀚伴獮鍥敍濮f寧鎹囬弻鐔哥瑹閸喖顬堝銈庡亝缁挸鐣烽崡鐐嶆棃鍩€椤掑嫮宓佸┑鐘插绾句粙鏌涚仦鎹愬闁逞屽墰閹虫捇锝炲┑瀣╅柍杞拌兌閻ゅ懐绱撴担鍓插剱妞ゆ垶鐟╁畷銉р偓锝庡枟閻撴洘銇勯幇闈涗簼缂佽埖姘ㄧ槐鎾诲礃閳哄倻顦板┑顔硷工椤嘲鐣烽幒鎴旀瀻闁规惌鍘借ⅵ濠电姷鏁告慨顓㈠磻閹剧粯鈷戞い鎺嗗亾缂佸鏁婚獮鍡涙倷閸濆嫮顔愬┑鐑囩秵閸撴瑦淇婇懖鈺冪<闁归偊鍙庡▓婊堟煛鐏炵硶鍋撻幇浣告倯闁硅偐琛ラ埀顒冨皺閺佹牕鈹戦悙鏉戠仸闁圭ǹ鎽滅划鏃堟偨缁嬭锕傛煕閺囥劌鐏犻柛鎰ㄥ亾婵$偑鍊栭崝锕€顭块埀顒佺箾瀹€濠侀偗婵﹨娅g槐鎺懳熺拠鑼舵暱闂備胶枪濞寸兘寮拠宸殨濠电姵纰嶉弲鎻掝熆鐠虹尨宸ョ€规挸妫濆铏圭磼濡搫顫嶇紓浣风劍閹稿啿鐣烽幋锕€绠婚悹鍥у级瀹撳秴顪冮妶鍡樺鞍缂佸鍨剁粋宥夋倷椤掍礁寮垮┑鈽嗗灣閸樠勭妤e啯鍊垫慨妯煎亾鐎氾拷

为找出正在运行的成本最高的 SQL,Edward 从语句级数据收集开始。他说:“完成这项工作有许多方法,或者通过手工创建的查询,或者使用 STATSPACK 或那些收集当前所执行 SQL 的统计信息的第三方实用工具。您可以根据逻辑 I/O、物理 I/O、分析与执行的比率和计数以及其他数值,找出成本最高的 SQL。您可以查看 I/O 的大小和数量、读写比率以及内存的数量。但是,如果有一个我可以看作 SQL 成本代理的因素,那么我查看它执行的逻辑 I/O 的数量 — 对我来说,这是可以用于了解特定语句相关影响的最有指导意义的单个量度。”
Edwards 说,在识别出哪些 SQL 语句的成本最高以后,就应该设置调整目标的优势级。“我们看着一条语句并提问:它是每月运行一次还是每年运行一次,或是每天运行数百次?您必须提供某种加权因素,以评判需要满足哪些语句 — 这些语句在形成历史观点方面很有用处。”
Edward 建议,在找到需要调整的 SQL 语句后,在可能的情况下应手动调整这些语句 — 这可能意味着完全优化它们。“经常出现的情况是,您需要退回去并且说:‘好吧,现在的总体业务目标是什么?’如果您正在调整一个包括十步的过程中的某个步骤,而您实际上可以将它压缩为包括两步的过程,则全局观点会为您节省很多时间和精力。”尽管调整高成本 SQL 是 Edwards 最优先考虑的,但他提示并不是所有的高成本 SQL 都可以更改。“不能更改的 SQL 可能是硬编码应用程序中的 SQL 或者是由 EJB 容器或类似工具生成的 SQL。在这种情况下,您可能希望更改数据或创建其他结构,这些结构能够导致执行计划的更改并具有更高的效率。”
其他调整策略
Edwards 的调整策略超越了 SQL 调整,他认为这时候“无法再进一步实质性地调整 SQL 工作负载 — 意味着应用程序的工作负载已经稳定。这是服务器环境调整 — 数据库、硬件和操作系统 — 最有效的时候了。”
在这种情况下,进行索引似乎是显而易见的选择,但 Edwards 建议仔细思考进行索引是否是对所怀疑问题的正确选择。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接