孤独侠客123 2013-03-03 18:12
浏览 280
已采纳

web处理“大数据”量能够采用什么方案?

场景:
一个彩票过滤网站, 用户使用文件上传自己的投注方案,最大控制在50w条[需要保留原始投注单],需要和网站系统的过滤集进行对比。

1.在过滤集内的,保存到投注单列表(TZD)
2.不在过滤集内的,保存到过滤单列表(GLD)
3.如果用户的原始单,有多条相同投注号,只能过滤掉一条,其它的全部保存到投注单(YSD)

需要注意的是:当用户上传自己的投注方案后,网站需要按照以上规则算出对应的数量,以及用户对应的需要支付的金额,当用户选择支付以后,才允许用户下载过滤后的投注单列表。

现在的问题是:
所有的过滤操作都使用sql在oracle里操作,这样用户量大的时候问题会很大,而且很多用户过滤后计算出金额并不支付,而这也占用了数据库的资源。
过滤的sql现在的性能也有比较大的问题,执行25万条原始单数据时就卡住了:

[code="java"]

begin update zc_ysd$qsbh$ a
set blbz = '1'
where fxdid = #fxdid#
and exists (select 1 from zc_bqglz$qsbh$ b where b.ysz = a.tzh);
update zc_ysd$qsbh$ a set blbz = '1'
where fxdid = #fxdid# and blbz='0'
and exists (select 1
from (select ROWID as RID,
row_number() over(partition by tzh order by rowid) as rn
from zc_ysd$qsbh$
where fxdid = #fxdid# and blbz='0') b
where b.rn > 1 and b.RID = a.rowid);
insert into zc_tzd$qsbh$
(ysdid, gh, tzh, rq, fxdid)
select ysdid, gh, tzh, rq, fxdid
from zc_ysd$qsbh$
where fxdid = #fxdid# and blbz = '1';
insert into zc_gld$qsbh$
(ysdid, gh, tzh, rq, fxdid)
select ysdid, gh, tzh, rq, fxdid
from zc_ysd$qsbh$
where fxdid = #fxdid# and blbz = '0';

update zc_tzglrz set jzsj=sysdate where qsbh='$qsbh$' and fxdid=#fxdid# and jzsj is null; end;

[/code]

  • 写回答

2条回答 默认 最新

  • jinbingchuan 2013-03-04 08:24
    关注

    可以参考spring batch

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 oracle调用存过,入参是一个自定义类型,用plsql该怎么调用测试呢
  • ¥30 dbLinq最新版linq sqlite
  • ¥20 对D盘进行分盘之前没有将visual studio2022卸载掉,现在该如何下载回来
  • ¥15 完成虚拟机环境配置,还有安装kettle
  • ¥15 2024年全国大学生数据分析大赛A题:直播带货与电商产品的大数据分析 问题5. 请设计一份优惠券的投放策略,需要考虑优惠券的数量、优惠券的金额、投放时间段和投放商品种类等因素。求具体的python代码
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗
  • ¥15 用matlab写代码
  • ¥30 motoradmin系统的多对多配置
  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模