萬能資料庫查詢分析器提示之(十)
---比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的“儲存結果至檔案”的匯出功能更為高效。
備忘:
如果您的電腦上安裝有“萬能資料庫查詢分析器”以前的版本,請先將舊版本卸載 ,然後再安裝新版本,謝謝!
作者簡介:
馬根峰,碩士,研究方向:資料庫應用。
個人開發了萬能資料庫查詢分析器,中文版本《DB 查詢分析器》、英文版本《DB Query Analyzer》。旨在解決跨資料庫平台的資料庫訪問。
個人還開發了徹底刪除檔案(File Delete Absolutely),用以將Windows系統上的檔案徹底刪除,不會被其它軟體恢複。
這兩個軟體均免費使用,在各內幾大軟體下載網站中關村線上、天空軟體站、華軍軟體園、太平洋電腦、非凡軟體站、綠色聯盟等均有下載。
DB 查詢分析器 5.03 :
http://xiazai.zol.com.cn/detail/27/264455.shtml
DB Query Analyzer 5.03:
http://xiazai.zol.com.cn/detail/43/420901.shtml
作者部落格:
CSDN部落格:http://blog.csdn.net/magenfeng
新浪部落格: http://blog.sina.com.cn/magenfeng
QQ空間: http://user.qzone.qq.com/630414817