




已閱讀5頁,還剩8頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
“萬能數據庫查詢分析器”使用SQL語句直接高效地訪問文本文件馬根峰( 廣東聯合電子服務股份有限公司, 廣州 510300)摘要 用SQL語句來直接訪問文本文件?是在做夢嗎?本文詳細地介紹了“萬能數據庫查詢分析器”,中文版本DB 查詢分析器、英文版本DB Query Analyzer在 文本文件 處理方面非常強大的功能,你可以直接用SQL語句來訪問這些文本文件,訪問250萬條記錄的文件的復雜的關聯操作,也不過用時59秒鐘。需要注意的是,文本文件的第一行需要有列名。關鍵詞 DB 查詢分析器;DB Query Analyzer 1 引言 中國本土程序員馬根峰推出的個人作品-萬能數據庫查詢分析器,中文版本DB 查詢分析器、英文版本DB Query Analyzer。萬能數據庫查詢分析器集哈希技術、鏈表等多種數據結構于一體,使用先進系統開發技術,經歷4年的研究、開發、測試周期后在2006年面世。之后7年來一直在進行不斷地完善、升級,到目前為止,最新版本為5.04 。“萬能數據庫查詢分析器”核心部分就具有長達5萬多行代碼的工作量,使得其具有強大的功能、友好的操作界面、良好的操作性、跨越各種數據庫平臺乃至于EXCEL和文本文件。你可以通過它查詢ODBC數據源(包括世面上所有的數據庫、TXT/CSV文件、EXCEL文件)的數據。你可以同時執行多條DML語句乃至存貯過程,結果會以你設定的表格、文本框、文件來返回。從數據庫導出千萬條數據時,效率與DBMS沒有什么區別。本文將以5.04版本為例,詳細闡述“萬能數據庫查詢分析器”中文版本DB 查詢分析器在 文本文件 處理方面非常強大的功能,你可以直接用SQL語句來訪問這些文本文件,訪問250萬條記錄的文件的復雜的關聯操作,也不過用時59秒鐘。要注意的是,文本文件的第一行需要有列名。2 產品獲得的成就及發展歷程 中文版本DB 查詢分析器在中關村在線 下載量超過10萬 多次,位居整個數據庫類排行榜中前20位。在程序員2007第2期的“新產品&工具點評”部分,編輯“特別推薦”了“萬能數據庫查詢分析器”發布。本期只點評了5個工具,分別是“Adobe Acrobat 8 中文版”、“迅雷搜索 1.7 新版上線”、“Google 桌面搜索 5.0 中文發布”、“BEA 發布 WebLogic SIP Server 3.0”和特別推薦“萬能數據庫查詢分析器”發布。前面4個都是國內外大型軟件公司的產品,只有“萬能數據庫查詢分析器”是個人創作的軟件。截止到2013年4月17日,在Baidu上搜索關鍵字萬能數據庫查詢分析器,搜索結果達318萬。在Baidu上搜索關鍵字DB 查詢分析器、DB Query Analyzer,搜索結果分別在104萬、16萬左右;在Google上搜索“DB 查詢分析器”、“DB Query Analyzer”,結果分別達104萬、44萬之多。本人撰寫了關于“萬能數據庫查詢分析器”有關技術的64篇文章,發布在電腦編程技巧與維護、軟件、計算機時代、電腦編程技巧與維護、百度文庫、CSDN資源、和本人的四大博客上(CSDN博客、新浪博客、QQ空間和搜狐博客上)。3 為何用DB 查詢分析器來訪問文本文件來解決實際問題在廣東聯合電子服務股份有限公司實施一張網的過程中,由于路段上傳的流水存在大量的異常,導致按照正常的結算流程無法快速地進行路段的結算。因此,為了進行及時的結算,廣東省高速公路公司授權先將異常流水進行忽略,后期再將這些流水進行上傳、修改、拆分結算。最近,為了實施忽略流水的回傳,本人做的第一步就是從忽略的流水中按照(流水只有在管理點存在、中心和管理點都存在)這兩種情況,再按照流水金額小于0、等于0、大于0三類進行統計成臺賬(6個文件),然后業務組,再從這些分類批次(6個文件)中確認哪些批次需要回傳(形成2 個文件, 流水大于0.csv 和 流水小于0.csv )。最終,本人還要根據這些這兩個文件中是否“回傳”,再從結算系統中根據復雜的邏輯,找出要回傳的流水號并按照區域分成4個文件。在本次處理中,源處理文件:流水大于0.csv 、 流水小于0.csv 、tb_road、 管理點存在中心不存在的流水_所有.txt 和 管理點與中心都存在的部分_所有.txt 這5個文件。后兩個文件是從結算系統數據庫服務器中通過復雜的邏輯處理生成的中間結果文件。輸出結果:要回傳的流水號并按照區域分成4個文件。解決方案:因此,輸入條件決定要么在結算數據庫系統中建立 數據表 來完成條件的判斷;要么將結果全部忽略的流水、需要關聯的數據表(tb_road)導出成 .CSV/.TXT 文件,再使用DB 查詢分析器強大、高效的 .CSV/.TXT 訪問功能來實施整個回傳流水文件的生成。 tb_road 表只是從生產機數據庫中導出tb_road表就行了。圖2 數據挖掘生成文本文件“管理點與中心都存在部分_所有.txt”4 5.04中文版本DB 查詢分析器為例 下面我們就以“萬能數據庫查詢分析器”的中文版本DB 查詢分析器 5.04為例,以Windows 2000 Server操作系統為平臺,先創建基于目錄 “D:ODBC_TXT_CSV”中 .TXT/.CSV 文件的ODBC數據源 “odbc_txt_csv”,然后再通過 DB 查詢分析器 5.04來訪問這些目錄下的文件。 操作系統: Windows 2000 Server操作系統 CPU:2.8 GHZ 單核內存:1GB 前臺程序: DB 查詢分析器 5.04 后臺文件: .TXT/.CSV圖3 創建基于 .CSV/.TXT 文件的ODBC數據源(一)圖4 創建基于 .CSV/.TXT 文件的ODBC數據源(二)圖5 登錄odbc_txt_csv,不用輸入用戶名和口令圖6 對象瀏覽器來查看數據源 odbc_txt_csv圖7 Windows資源管理器中,ODBC數據源odbc_txt_csv對應的目錄下所有的文件圖8 用SQL語句來訪問 .txt和 .csv文件,來生成各區域需要回傳的流水圖8中的復雜的SQL語句如下:select listno,2014-06-16from ( select distinct b.LISTNO,b.roadno -select count(*) as rec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY from ( select w.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 by w.roadno,w.squaddate,w.roadname,w.outvehclass ) a,管理點與中心都存在部分_所有.txt b where ( (b.CASHMONEY+b.ETCMONEY)0 union all select * FROM 流水小于0.csv where (備注 is null) and 回送標志=回送 and (cashmoney+etcmoney)0 ) w group by w.roadno,w.squaddate,w.roadname,w.outvehclass ) a,管理點與中心都存在部分_所有.txt b where ( (b.CASHMONEY+b.ETCMONEY)0 ) and a.roadno=b.roadno and a.SQUADDATE=b.SQUADDATE and a.OUTVEHCLASS=b.OUTVEHCLASSNAME union select distinct b.LISTNO,b.roadno -select count(*) as rec_num,sum(b.CASHMONEY)/100 as CASHMONEY,sum(b.ETCMONEY)/100 as ETCMONEY from ( select w.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 by w.roadno,w.squaddate,w.roadname,w.outvehclass ) a,管理點存在中心不存在的流水_所有.txt b where ( (b.CASHMONEY+b.ETCMONEY)0 union all select * FROM 流水小于0.csv where (備注=只管理點存在) and 回送標志=回送 and (cashmoney+etcmoney)0 ) w group by w.roadno,w.squaddate,w.roadname,w.outvehclass ) a,管理點存在中心不存在的流水_所有.txt b where ( (b.CASHMONEY+b.ETCMONEY)0 ) and a.roadno=b.roadno and a.SQUADDATE=b.SQUADDATE and a.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 Query Analyzer中斷SQL語句的執行 杭州:計算機時代,2011年第12期2 馬根峰 DB 查詢分析器 批量執行DML語句并返回更詳細的信息 北京:電腦編程技巧與維護,2011年第24期3 馬根峰 DB Query Analyzer中的事務管理在DB2中的應用 北京:電腦編程技巧與維護,2011年第22期4 馬根峰 DB 查詢分析器中斷SQL語句的執行 天津:軟件,2011年第6期5 馬根峰 萬能數據庫查詢分析器中的事務管理在Oracle中的應用 上海:微型電腦應用,2011年第11期 6 馬根峰 新產品&工具點評 特別推薦:“萬能數據庫查詢分析器”發布 程序員,2007年2期以下58篇文章發布在百度文庫、CSDN資源、和本人的四大博客上:萬能數據庫查詢分析器使用技巧之(一)直到萬能數據庫查詢分析器使用技巧之(十三)共13篇The 1st tip of DB Query Analyze直到The 13th skills of DB Query Analyzer共13篇如何在客戶端配置ODBC來訪問遠程DB2 for Windows服務器How to configure ODBC DSN in Client to access remote DB2 for Windows如何在服務器上配置ODBC來訪問本機DB2 for Windows服務器How to configure ODBC DSN to access local DB2 for Windows軟件開發頂尖高手的殺手锏SQL語句Which SQL statement is the trump card to the senior software developerDB 查詢分析器批量執行DML語句并返回更詳細的信息用“萬能數據庫查詢分析器”測試SQLite對4大SQL精髓語句的支持用“DB查詢分析器”的對象瀏覽器來展現數據庫的數據字典萬能數據庫查詢分析器用戶已基本涵蓋當前所有數據庫系統The DBMS that DB Query Analyzer Users often use cover all kinds of DBMS查詢分析器應必須具備的功能-中斷查詢的執行萬能數據庫查詢分析器的EXE文件加殼技術Exe packer prevent DB Query Ana
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《探索規律》(教學設計)-2023-2024學年二年級下冊數學西師大版
- DB41∕T 1768-2019 工廠化菌糠栽培雙孢蘑菇技術規程
- 和解協議回復函
- 墻體保溫構造Architecturalmapandstru
- 認識現代港口物流的功能導入港口物流課件
- 施工組織設計與概預算人劉芳86課件
- 三年級數學下冊 第四單元 毫米和千米4.2 實際測量教學設計 冀教版
- 2025湖北省綠色農產品菌棒采購合同
- 《天安門廣場》(教學設計)-2024-2025學年六年級上冊數學北師大版
- 2025物業管理合同范本:物業服務合同樣本
- 2025年廣西壯族自治區南寧市中考一模生物試題(含答案)
- 撤資退股合同協議
- 上海市嘉定區聯考2023-2024學年五年級下學期期中數學試題(含答案)
- 人教版(2024)七年級下冊英語期中質量檢測試卷(含答案)
- 2024年度《安全教育家長會》課件
- 安全生產法律法規知識培訓課件
- 地鐵安檢專業知識培訓課件
- 2024年國家國防科技工業局軍工項目審核中心招聘筆試參考題庫附帶答案詳解
- 南京開通KT820數控車床說明書
- GB/T 17554.1-2006識別卡測試方法第1部分:一般特性測試
- 三年級家長會(語文).ppt
評論
0/150
提交評論