优化较大数据量的处理效率的收获(优化思路)
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);
准备将数据通过这个表中转
(待续)
剩下就是如何解决的问题了
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);
准备将数据通过这个表中转
(待续)
相关文章推荐
- 优化较大数据量的处理效率的收获(寻找瓶颈)
- 优化较大数据量的处理效率的收获(sql性能优化)
- 优化较大数据量的处理效率的收获(总结,疑问)
- 优化较大数据量的处理效率的收获(前言)
- 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法
- (转)一篇图片处理优化思路 原文地址http://blog.chinaunix.net/uid-20806919-id-132246.html
- 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法
- A* 寻路效率优化(使用链表+插入排序处理开放列表)
- Android, BaseAdapter 处理大数据量时的优化
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview效率检视工具,分析程序运行速度!并讲解两种创建SDcard方式!
- (转)【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- 汇编效率优化:指令处理机制
- 《java提高数据导入效率优化思路》
- 关于Execl导入大数据量文件的处理思路(实战经验)
- 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- java处理较大数据量到mysql
- 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!
- mysql处理大数据量的查询速度究竟有多快和能优化到什么程度