网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  当数据积累到一定时间后执行会越来越慢     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:70次  录入:管理员--2008-07-25  
 

【赛迪网-it技术报道】最近很长一段时间都在优化一个项目,这个项目存在许多问题,从数据架构到工作流

程,我一直在思考一些有关oracle性能优化的问题,我跟开发实施人员进行过多次交流,

发现存在许多交流障碍,许多问题实施人员觉得sql语句执行很快,并不存在性能问题,

我花了大量时间要他看执行计划,说明当数据积累到一定时间后,会执行越来越慢。

我举一个例子来说明问题:

select v2.*

from consultationrecorddoctor t1

right outer join

(select cr.*, crc.modifydate, crc.modifyuserid, crc.consultationtime,

crc.applyconsultationdeptid, crc.askconsultationdeptid,

crc.consultationdeptid, crc.casehistory_right,

crc.consultationorder_right, crc.consultationidea_right,

crc.otherhospital_right, crc.consultationdate,

crc.maindoctorid, c1.deptname_vchr as applydeptname,

c2.deptname_vchr as askdeptname,

c3.deptname_vchr as deptname,

f_getempnamebyno (crc.maindoctorid) as maindocname

from consultationrecord cr,

consultationrecordcontent crc,

t_bse_deptdesc c1,

t_bse_deptdesc c2,

t_bse_deptdesc c3,

(select cr.inpatientid, cr.inpatientdate, cr.opendate,

cr.createdate,

max (crc.modifydate) as maxmodifydate

from consultationrecord cr,

consultationrecordcontent crc

where (crc.applyconsultationdeptid = '0000208')

and cr.inpatientid = crc.inpatientid

and cr.inpatientdate = crc.inpatientdate

and cr.opendate = crc.opendate

and cr.status = 0

group by cr.inpatientid,

cr.inpatientdate,

cr.opendate,

cr.createdate) v1

where (crc.applyconsultationdeptid = '0000208')

and cr.inpatientid = crc.inpatientid

and cr.inpatientdate = crc.inpatientdate

and cr.opendate = crc.opendate

and cr.status = 0

and crc.applyconsultationdeptid = c1.deptid_chr

and crc.askconsultationdeptid = c2.deptid_chr

and crc.consultationdeptid = c3.deptid_chr

and cr.inpatientid = v1.inpatientid

and cr.inpatientdate = v1.inpatientdate

and cr.opendate = v1.opendate

and v1.maxmodifydate = crc.modifydate

and crc.maindoctorid is not null) v2

on t1.inpatientid = v2.inpatientid

and t1.inpatientdate = v2.inpatientdate

and t1.opendate = v2.opendate

and t1.modifydate = v2.modifydate

and t1.employeeflag = 1

where t1.employeeid is null

order by t1.employeeid desc, v2.askdeptname, v2.consultationdate;

查询使用了一个右连接,查询的表并没有包含t1表的字段,而且在实际的t1.employeeid中

根本不存在null的值,实际上是从一个大的结果集剔除一个大结果集的而获得一个小的结

果集,随着crc表数据量加大,会越来越慢!

 
 
上一篇: 在redhat as3上快速安装oracle数据库10g    下一篇: oracle10g r2 emca常用命令及实例步骤
  相关文档
教你快速理解oracle归档模式的命令及参数 11-15
Oracle数据库使用及命名规则的详解 04-23
oracle dbms_job:每隔特定时间执行特定任务 08-05
oracle数据库9i和10g环境下使用*.ora 04-29
带你快速了解wait等待事件及其处理方法 04-17
自定义临时表实现及在Oracle Spatial应用 05-27
全面解析oracle数据库的系统和对象权限 05-07
细化解析:oracle 10g的统计信息工具awr 11-15
将Oracle的数据倒入EXCEL中的方法 04-23
oracle11g之初体验 数据中心自动化等功能 09-24
视图上含有row_number分析函数没法走索引 03-10
Oracle与FoxPro两数据库的数据转换 05-13
教你通过sql语句获取数据库的基本信息 07-29
Oracle 与 DB2 数据类型分类对应说明 05-13
详细讲解oracle数据库灾难防护的核心技术 02-29
认识NBU备份Oracle时Code 29错误的解答 06-03
Oracle7.X 回滚表空间数据文件的误删除 06-03
手工创建数据库的全部脚本及其说明 04-11
存储在数据库中的过程——数据库触发器 09-29
在oracle 10g中如何解决ora-19815错误 04-03
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息