设为首页 加入收藏

TOP

《万能数据库查询分析器》实现使用SQL语句直接高效地访问文本文件(二)
2014-11-23 23:55:50 来源: 作者: 【 】 浏览:24
Tags:《万能数据库查询分析器》 实现 使用 SQL 语句 直接 高效 访问 文本 文件
roadname,w.outvehclass

) a,[管理点与中心都存在部分_所有.txt] b

where ( (b.CASHMONEY+b.ETCMONEY)<0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE

anda.OUTVEHCLASS=b.OUTVEHCLASSNAME

union

select distinct b.LISTNO,b.roadno

--select count(*) asrec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY

from

(

selectw.roadno,w.squaddate,w.roadname,w.outvehclass,

sum(w.rec_count) as rec_count1,sum(w.cashmoney) as cashmoney1,sum(w.etcmoney) as etcmoney1

from

(

select *

FROM [流水大于0.csv]

where (备注 is null) and 回送标志='回送' and(cashmoney+etcmoney)>0

union all

select *

FROM [流水小于0.csv]

where (备注 is null) and 回送标志='回送' and(cashmoney+etcmoney)>0

) w

group byw.roadno,w.squaddate,w.roadname,w.outvehclass

) a,[管理点与中心都存在部分_所有.txt] b

where ( (b.CASHMONEY+b.ETCMONEY)>0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE

anda.OUTVEHCLASS=b.OUTVEHCLASSNAME

union

select distinct b.LISTNO,b.roadno

--select count(*) asrec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY

from

(

selectw.roadno,w.squaddate,w.roadname,w.outvehclass,

sum(w.rec_count) as rec_count1,sum(w.cashmoney) as cashmoney1,sum(w.etcmoney) as etcmoney1

from

(

select *

FROM [流水大于0.csv]

where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)<0

union all

select *

FROM [流水小于0.csv]

where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)<0

) w

group byw.roadno,w.squaddate,w.roadname,w.outvehclass

) a,[管理点存在中心不存在的流水_所有.txt] b

where ((b.CASHMONEY+b.ETCMONEY)<0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE

anda.OUTVEHCLASS=b.OUTVEHCLASSNAME

union

select distinct b.LISTNO,b.roadno

--select count(*) asrec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY

from

(

selectw.roadno,w.squaddate,w.roadname,w.outvehclass,

sum(w.rec_count) as rec_count1,sum(w.cashmoney) as cashmoney1,sum(w.etcmoney) as etcmoney1

from

(

select *

FROM [流水大于0.csv]

where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)>0

union all

select *

FROM [流水小于0.csv]

where (备注='只管理点存在') and 回送标志='回送' and(cashmoney+etcmoney)>0

) w

group byw.roadno,w.squaddate,w.roadname,w.outvehclass

) a,[管理点存在中心不存在的流水_所有.txt] b

where ((b.CASHMONEY+b.ETCMONEY)>0 ) and a.roadno=b.roadno anda.SQUADDATE=b.SQUADDATE

anda.OUTVEHCLASS=b.OUTVEHCLASSNAME

) www

where roadno in (select roadno from [tb_road.txt] where areano=4407)

\

图9 一开始执行图8中的SQL语句时,本机CPU使用率立刻攀升至97%

\

图10 生成中片区需要回传的流水文件,共有6万多条记录\

图11 从结算中心数据库中用挖掘生成的所有忽略的流水,两个文件共250多万条记录

结论:

对于“交互式”这种数据处理的方式来说,将结果导出,用《DB 查询分析器》的强大、高效的文本文件的处理功能来分析处理,也是一种不错的选择。并且《DB 查询分析器》的效率非常之高、处理非常方便,可以将源文件当成一个数据库中的数据表一样用标准SQL语句来进行访问。

本人的PC机只不过内存1GB的2005年的DELL 台式PC机,对250万条记录的文件进行关联访问的时候,也只是用不到59秒的时间就生成了一个区域的结果文件,期间CPU使用率高达97% 。

5 本人撰写的关于“万能数据库查询分析器”的64 篇技术文章

目前以下6篇文章发布几个国内计算机刊物上:

[1] 马根峰· DB QueryAnalyzer中断SQL语句的执行 · 杭州:《计算机时代》,2011年第12期

[2] 马根峰· DB查询分析器 批量执行DML语句并返回更详细的信息 · 北京:《电脑编程技巧与维护》,2011年第24期

[3] 马根峰· DBQuery Analyzer中的事务管理在DB2中的应用 · 北京:《电脑编程技巧与维护》,2011年第22期

[4] 马根峰· DB查询分析器中断SQL语句的执行· 天津:《软件》,2011年第6期

[5] 马根峰· 万能数据库查询分析器中的事务管理在Oracle中的应用 · 上海:《微型电脑应用》,2011年第11期

[6] 马根峰 · 新产品&工具点评 特别推荐:“万能数据库查询分析器”发布 · 程序员,2007年2期

以下58篇文章发布在百度文库、CSDN资源、和本人的四大博客上:

《万能数据库查询分析器使用技巧之(一)》直到《万能数据库查询分析器使用技巧之(十三)》共13篇

《The 1st tip ofDB Query Analyze》直到《The 13th skills of DB Query Analyzer》共13篇

《如何在客户端配置ODBC来访问远程DB2 for Windows服务器》

《How to configure ODBC DSN in Client toaccess remote DB2 for W

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇单一目的聚集操作 下一篇H2内存数据库支持存储到文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: