• 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言
wzh2021 2013年05月25日
大数据量查询,进度条 解决方案
p_phonecall的表结构很简单,就5列。但是这个表的数据量很大,有6千万--1亿条记录左右!!
billing_nbr--手机号
ny--所属月份
cell_id--小区编号
js-计数(全部为1)
duration--通话时长(单位秒)

现在每次到了select的时候 程序就假死了
怎么解决啊
谢谢大家了,很着急啊 !

代码如下:
for ll_i=1 to dw_phoneno_oftelphone.rowcount() //手机号码

ls_phoneno = dw_phoneno_oftelphone.object.phoneno[ll_i]

for ll_j=1 to dw_xq.rowcount() //小区编号
yield()
//进度条
if isValid(w_prostep) then w_prostep.f_step() //
w_prostep.SetRedraw(TRUE)

ll_xqid = dw_xq.object.id[ll_j]
ls_xqbh = dw_xq.object.xqbh[ll_j]
ls_xqmc = dw_xq.object.xqmc[ll_j]
//查询某月、某手机号、在某小区的通话次数
SELECT sum(js) into :ll_hz_count FROM p_phonecall
WHERE ( p_phonecall.billing_nbr = :ls_phoneno) AND ( p_phonecall.ny = :ls_ny ) and (cell_id=:ls_xqbh) ;
if isnull(ll_hz_count) then ll_hz_count=0

IF ib_cancel = TRUE THEN goto rett

next
//查询某月、某手机号的通话次数总和
SELECT sum(js) into :ll_all_count FROM p_phonecall
WHERE ( p_phonecall.billing_nbr = :ls_phoneno) AND ( p_phonecall.ny = :ls_ny ) ;
if isnull(ll_all_count) then ll_all_count=0

next

...全文
731 点赞 收藏 16
写回复
16 条回复

还没有回复,快来抢沙发~

发动态
发帖子
PowerBuilder
创建于2007-09-28

583

社区成员

6.6w+

社区内容

PowerBuilder 相关问题讨论
社区公告
暂无公告