您的位置:首页 > 大数据

优化较大数据量的处理效率的收获(优化思路)

2005-08-05 20:00 393 查看
找到了瓶颈

剩下就是如何解决的问题了

1、如何加快从文本中提取信息的速度

2、如何避免在多次循环中处理多次判断

3、如何避免避免在循环中于数据库交互

------------------------

对于1,解决比较简单,可以一次性把文本中的数据读入一个字符串,然后处理格式化字符串

例如用逗号分割账号 test1,test2,test3

前面说过,数据在文本中,是逐行存放的

所以我通过

StreamReader sr=new StreamReader(Server.MapPath("temp\\"+fullname));
string strList = sr.ReadToEnd().Replace("\r\n",",");
sr.Close();
string[] nameList = strList.Split(',');
得到一个nameList数组,然后处理这个数组

为避免打断cpu流水线操作,对于2,3的瓶颈,考虑去掉所有在循环中的判断,只生成sql语句
然后将所有数据读入数据库
而数据间的相关约束,在退出循环后处理
so,新建了一个临时表user_temp,并建立相关索引

Create Table DUE_USER_TEMP
(duetime varchar2(6) not null,
province number(10) not null,
city number(10) not null,
userName varchar2(40) not null,
userType number(5) not null,
status number(5) not null,
money number(10,2) not null,
pushtimes number(10) default 0,
daypushtimes number(10) default 0,
lasttime date default sysdate,
reason number(5) default 0,
createtime date default sysdate,
operator number(10) default 0,
validflag number(5) default 0,
reserved1 number(10),
reserved2 varchar2(64));

create index dueusertemp_idx1 on due_user_temp(username,province,city);
create index dueusertemp_idx2 on due_user_temp(province,city,username);

准备将数据通过这个表中转
(待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐