万能数据库查询分析器使用技巧之(十)
---比DB2 EXPORT更高效的查询结果导出功能
马根峰
( 广东联合电子服务股份有限公司, 广州 510300)
摘要 本文详细地介绍了“万能数据库查询分析器”,中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》的最新版本4.01中新增的功能--高效地保存查询结果到文件。在查询结果在5万条以上乃至数亿条记录时,可以快速地保存查询结果。这个功能可以结合“文本限制符”和“导出文件时是否带表头”,来控制保存的结果文件的格式,达到一些DBMS所不具备的功能。
关键词 DB 查询分析器;DB Query Analyzer;DB2;保存查询结果
1 “万能数据库查询分析器”简介
中国本土程序员马根峰推出的个人作品----万能数据库查询分析器,中文版本《DB查询分析器》、英文版本《DB Query Analyzer》。
万能数据库查询分析器集哈希技术、链表等多种数据结构于一体,使用先进系统开发技术,经历4年的研究、开发、测试周期后在2006年面世。之后7年来一直在进行不断地完善、升级,到目前为止,最新版本为4.01。万能数据库查询分析器具有长达7万多行代码的工作量,使得其具有强大的功能、友好的操作界面、良好的操作性、跨越各种数据库平台乃至于EXCEL。
在《程序员》2007第2期的“新产品&工具点评”部分,编辑“特别推荐”了“万能数据库查询分析器”发布。本期只点评了5个工具,分别是“Adobe Acrobat 8 中文版”、“迅雷搜索 1.7 新版上线”、“Google 桌面搜索 5.0中文发布”、“BEA发布 WebLogic SIP Server3.0”和特别推荐“万能数据库查询分析器”发布。前面4个都是国内外大型软件公司的产品,只有“万能数据库查询分析器”是个人创作的软件。截止到目前,在国内最著名的软件下载网站“中关村在线”中下载量近9万次,位居整个数据库类排行谤中前20位。
截止到2011年11月9日,在Google搜索关键字“DB查询分析器”、“DB Query Analyzer”,搜索结果分别在80万、150万左右;在Baidu搜索关键字“DB查询分析器”、“DB Query Analyzer”,搜索结果均在40万左右。
本文将介绍万能数据库查询分析器中英文4.01版本中,新增的高效导出功能--“保存查询结果至文件”。
2 4.01版本新增功能—保存结果至文件
实现了将查询的结果直接输出到文件,对应于菜单项“查询à显示结果->保存结果到文件”。这种情况可用于 当返回的记录数非常大(如超过5万条,或者上千万及至几亿条记录),这种情况下,最好将结果输出到文件;记录数在1万至2万条的话,以 “以表格显示结果”来显示效率也可以,尽量不要用以“以文本显示结果”显示方式。
用户还可以结合“文本限定符”的设置、“导出文件时带表头”这两个设置,来为导出的文件设置文本限制符、输出的文件是否带表头。请注意这两个设置一旦更改,则马上生效。
4.01版本这一新增功能,使得《DB 查询分析器》具备了大型数据库系统的EXPORT、BCP导出功能,可以将具有上亿条记录的数据表高效的导出。
3 几个例子来显示其非常高的执行效率
“万能数据库查询分析器”中英文4.01版本,均增加了保存查询结果至文件这一功能,并且由于采取了非常高效的算法,具有非常高的执行效率。
下图为文本限制符为 None,即没有文本限制符的查询结果:
图1 连接DB2数据库, 14分钟导出1100多万条记录,生成2GB文件
图1是在PC客户端上导出文件,用了近15分钟,当然2GB数据从服务器到客户端的网络传输也会消耗较多的时间。图2是在服务器主机是IBM 670,64GB的内存,8个物理CPU,16个逻辑CPU,存贮采取磁盘阵列,在这样的服务器上执行同样的查询脚本,导出同样的数据,耗时近6分钟,乍一看,DB Query Analyzer的“查询结果保存至文件”的导出效率相当于服务器上的40%。但深入地想一下,如果导出的文件要保存至客户端的情况下,是不是还要包括服务器导出的文件用FTP传送到客户端的时间,如果这二者所用时间之和会怎么样?文章第四部分会给出答案。
图2 在服务器主机IBM 670,近6分钟导出1100多万条记录,生成2GB文件
图3 连接MS SQL Server数据库, 2分钟导出200多万条记录,生成500MB文件
图4 连接MS SQL Server数据库, 14秒导出近200万条记录,生成80MB文件
4 为什么说《DB 查询分析器》的导出效率比DB2 Export更高
在一般情况下,我们在服务器导出的文件是要传送到PC客户端的,所以数据从服务器FTP到客户端的用时也是必须考虑的。
前面在服务器上导出的约2GB的文件从服务器FTP到PC客户上,用了14分36秒钟的时间。
图5 2GB的文件从服务器FTP到PC客户上,用了14分36秒钟的时间
所以DB2 Export用时与FTP传送时间之和为20多分钟,而DB Query Analyzer用时仅14多分钟,所以DB Query Analyzer的“保存结果至文件”的导出功能更为高效。
备注:
如果您的计算机上安装有“万能数据库查询分析器”以前的版本,请尽量先用以前安装时的版本(找不到的话,用最新版本也可以)进行 Uninstall ,然后再安装新版本,谢谢!
作者简介:
马根峰,硕士,研究方向:数据库应用。
个人开发了万能数据库查询分析器,中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》。旨在解决跨数据库平台的数据库访问。
个人还开发了彻底删除文件(File Delete Absolutely),用以将Windows系统上的文件彻底删除,不会被其它软件恢复。
这两个软件均免费使用,在各内几大软件下载网站中关村在线、天空软件站、华军软件园、太平洋电脑、非凡软件站、绿色联盟等均有下载。
作者博客:
CSDN博客:http://blog.csdn.net/magenfeng
新浪博客: http://blog.sina.com.cn/magenfeng
QQ空间: http://user.qzone.qq.com/630414817