孤独侠客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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)