网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Siebel帮助Oracle实现客户数据整.
.以Oracle为例说明如何通过ODBC将.
.Oracle9i数据库如何支持动态重配.
.Shrink Undo表空间,释放过度占用.
.Oracle10g 特性之数据仓库和集成.
.字符集问题的初步探讨(一).
.手工创建Oracle数据库脚本及说明.
.PL/SQL入门.
.一点整理的statspack内容信息.
.使用DBMS_UTILITY转换Block地址.
.说一说Oracle的优化器(Optimizer).
.九大数据仓库方案特点比较.
.vsftpd-1.1.3配制实例之一:INTE.
.用动态SQL方法4连接 Oracle 的实.
.专家答疑Oracle热点问题.
.Oracle/JSP技术涉及日期和时间问.
.FreeBSD 5.0RC1下安装Oracle 9i[.
.SQLPlus命令使用指南(二) enh.
.ORACLE优化器 .
.rman总结.

[Oracle]一次数据库性能问题的tuning

发表日期:2008-2-9


基本情况:

    系统是一个基于web的业务系统,以online查询为主,数据更新以批量为主,晚上执行。应该说系统还不算负载太大。5-1之后上班的时候客户反映很慢,察看DB的cpu慢慢长到100%状态。服务基本处于不可用状态。i/o wait也挺高的。
    经检查,前些天的批量竟然有达到20多小时才完成,导致次日批量都跑不起来。
   
    打开statspack收集信息
   
    从系统中发现本应该夜间执行的批量作业还在运行。停掉后,rollback做了4个小时!(因为一个transaction中只有一个复杂的、数据量巨大的insert语句)
   
    然后做statspack分析,
   
    系统中存在问题:等待事件较严重,缓存命中率较低,
   
    语句分析:

    1、一些大量执行update/delete语句竟然没有建立索引,其实可以建立pk,根据pk处理。

    where中使用常量(引起parse)
   
    2、存在大量这样的语句:

    SELECT fieldx FROM Tablesname where trim(ServiceNUM) = 'DDDDDD'
    - 在ServiceNUM字段上是唯一索引,因为trim就不能使用index(败笔) --改!
    - 使用常量查询,造成每次查询都要parse,没有必要的占用的CPU -- 改!
   
   
    3、在批量的存储过程中,

    所有语句基本都是全表扫描! --- 和开发人员沟通,需要修改逻辑。改进之后效果还是蛮大的。
   
    另外发现一个问题:

    客户需要的是n百万用户数据中的活动用户万数据,他们却全部把n百万数据从其他系统中收集到自己的系统中,在批量的时候又使用full table scan,性能自然不会好。系统从刚开始设计的时候就存在隐患。这个问题就需要从长计议了。
   
    修改后,CPU高峰时间基本稳定在30-40%之间。
    批量基本在2个小时内完成。
   
    其实是一个很简单的系统,但是做到这种样子,尤其是从设计到编码都存在问题。呵呵,说真的,不是在优化语句的,而是从头开始看设计。

上一篇:Oracle如何精确计算row的大小 人气:596
下一篇:[Oracle]大数据类型的操作之CLOB 人气:904
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐