oracle数据库联机交易应用查询性能问题

文章讨论了批量处理与联机处理的区别,联机处理强调实时响应和低I/O,而批量处理涉及大量数据处理。在Oracle数据库的联机交易应用中,大查询返回量可能导致性能问题和中间件内存溢出。解决方案是实施分页机制,限制每次查询返回的记录数不超过1000条,并防止WEB应用重复发送查询请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在处理用户的接收请求时,有两种方式,一种是批量(BATCH),另一种是联机。在批量处理过程中,用户的请求被分类后,积累到一起一同提交给主机,提交后,主机按顺序对这些请求逐一进行处理,待全部处理完成后再将处理结果一同输出出来。联机处理是指请求的接收和处理都是实时的,一旦处理完成后就要实时将处理结果传给用户。同批量不同的是,联机交易是并发的,来自于四面八方,因此联机交易无法控制请求的顺序、种类和先后,因此具有不可预测性。

         联机程序与批量程序对比具有以下的特点:

(1)联机程序一次请求处理的输入/输出(I/O)较少;批量程序每次需要处理大量的数据,具有大量的I/O。

(2)联机系统需要实时、快速响应用户的请求,一般交易的响应时间在100ms内;批量程序由于每次需要处理大量的数据,执行时间将较长。

(3)联机程序需要强大的网络系统支持;批量程序可以运行在操作系统内部,不必有一个独立网络平台支撑。

     在实践中ORACLE数据库联机交易应用查询(平均查询返回的行数)可能会引发性能问题。

     通常相关指标为查询语句平均单次返回记录数不得大于1000条。

     联机交易应用查询必须增加分页机制,对返回记录数进行控制,限制最大不超过1000条。返回记录数过多,不但造成数据库负载高,极端情况下还可能造成中间件out of memory错误。

     WEB展示类应用要防止客户反复点击同样的查询,避免向DB重复发送查询请求。

解决方案:

       采用数据库分页需要两次sql完成:(1)一个sql计算总数量(2)一个sql返回分页后的数据

常见分页语法:通过ROWNUM分页如果是导出操作,建议一个文件不超过5万条,超过5万条,分多个文件导出。

更多内容请关注公众号“测试小号等闲之辈”~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值