怎么这么慢啊!!!!100分
我用的是pb8+oracle8.1.7
数据库里有四张表
1,交接箱信息表
结构:交接箱编号, 容量(对)...(其他的一些属性)主键是编号(5000条记录)
j00101 400 ......
j00102 800 ....
..............................
j00801 400 ......
2,交接箱线序表
结构:交接箱编号, 线序,状态, 电话号码....(90万条记录,已建索引)
j00101 1 0(空闲) null
j00101 2 1(使用) 5926711
j00101 3 1(使用) 5926712
j00101 4 1(使用) 5926713
j00101 5 1(使用) 5926714
.............................
j00101 400 2(坏线)
如果是400对的j00101交接箱就有400条记录
3,计费表,
结构:电话号码:年,月,月租,市话.........
5926711 2002 11 15 23.45
5926712 2002 11 15 32.98
.........................................
5926714 2002 11 15 98.34
一共有90万条记录
4,统计表
结构:交接箱编号,年,月,线序使用情况,总月租,总市话....
要求统计结果放在“统计表”里
我的做法:
由于不知道怎样直接在数据库里按rowid 依次读出交接箱编号:我通过数据窗口进行retrieve()后再按getrow()读交接箱编号(浪费了时间,不知怎样改进,最好直接从数据库里按顺序读)
for i=1 to dw_1.rowcount()
bh=dw_1.getitemstring(i,"jjxbh")
然后我再设一个游标从线序表里找到该交接箱的线序和对应的电话号码;
通过游标计算线序使用情况,同时根据号码在计费表进行累计求和
最后插入统计表.
这样速度太慢,计算一条需3-4秒(如果有10万个交接箱,计算完需5天,开玩笑!!),怎样优化呢?请大家讨论,人人有分!!!!