《DB 查詢分析器》批量執行DML語句並返回更詳細的信息
馬根峯
( 廣東聯合電子收費股份有限公司, 廣州 510300)
摘要 本文簡單闡明瞭DB 查詢分析器訪問DB2時批量執行DML語句,並返回更詳細的信息。
關鍵詞 DB 查詢分析器;DML;數據庫客户端工具
DB Query Analyzer returns information in more detail while batchDML statement end of execution
MA Gen-feng
( GuangDong Unitoll collection incorporated, GuangZhou 510300)
Abstract The thesis gives a brief introduction how DB Query Analyzer returns information in more detail while process batch SQL statement.
Key words DB Query Analyzer;DML;Client tools of DBMS
1 功能強大、統一界面的《DB 查詢分析器》
從關係數據庫產生至今,有許多種數據庫產品問世,大型數據庫系統如Oracle、Sybase、DB2、Informix,企業級數據庫系統如MS SQL SERVER、MySql,還有桌面數據庫系統如MS ACCESS、FoxPro和Paradox。
對於每一種數據庫產品而言,他們都有各自的客户端訪問工具。但是不同數據庫產品之間的客户端工具從功能上、界面上相差甚遠,有的界面甚至不太友好。
中國本土程序員馬根峯推出的個人作品----萬能數據庫查詢分析器,是經過了近四年的潛心研究、設計與開發,再加上三個月左右在DB2、ORACLE、SYBASE、INFORMIX、MYSQL、MS SQL SERVER、ACCESS、FORPRO和PARADOX上的綜合測試。其中文版本《DB 查詢分析器》,具有強大的功能、友好的操作界面、良好的操作性、跨越數據庫平台。它為廣大的數據庫管理與應用人員、軟件開發人員提供了一種萬能的數據庫客户端工具,用户不僅可以用它方便地訪問、管理、維護各種關係數據庫乃至於EXCEL。
在《程序員》2007第2期的“新產品&工具點評”部分,編輯“特別推薦”了“萬能數據庫查詢分析器”發佈。本期只點評了5個工具,分別是“Adobe Acrobat 8 中文版”、“迅雷搜索 1.7 新版上線”、“Google 桌面搜索 5.0 中文發佈”、“BEA 發佈 WebLogic SIP Server 3.0”和特別推薦“萬能數據庫查詢分析器”發佈。前面4個都是國內外大型軟件公司的產品,只有“萬能數據庫查詢分析器”是個人創作的軟件。截止到目前,在國內最著名的軟件下載網站“中關村在線”中下載量近9萬次,位居整個數據庫類排行謗中前20位。在世界範圍內,從功能上也僅有國外的Query Tool可以與萬能數據庫查詢分析器比肩,萬能數據庫查詢分析器當屬國內第一查詢分析器無疑。
2 DML語句與數據庫訪問
DML(Data Manipulation Language)數據操縱語言命令使用户能夠查詢數據庫以及操作已有數據庫中的數據。如insert,delete,update,select(插入、刪除、修改、檢索)等都是DML。它們是數據庫操作中使用最多的SQL語句。
在數據庫維護、管理、查詢的時候,經常會遇到一次向DBMS提交多條SQL語句(尤其是DML語句)的情況。絕大多數的DBMS都沒有提供直觀的客户端工具來返回每一條SQL語句的執行時間、返回的記錄總條數或者受到影響的記錄總條數。尤其是執行的是刪除語句、修改語句時,你最關注的莫過於受到影響的記錄總條數了。但遺憾的是,絕大多數的DBMS都沒有提供這樣直觀的客户端工具,更有甚者,有些客户端工具只告訴你刪除語句、修改語句執行成功,連受到影響的記錄條數都不告訴。
3 《DB 查詢分析器》執行批量DML語句並返回更詳細的信息
但萬能數據庫查詢分析器卻給你提供了這樣的便利,你不但可以通過它向DBMS一次提交多條SQL語句,並且它還會向你返回每條SQL語句執行所需要的時間、受影響的記錄(或者返回的記錄)條數。如果其中某些SQL語句有錯誤,它還會給你返回DBMS返回的錯誤信息提示。
因此通過萬能數據庫查詢分析器,你可以很方便地瞭解每條SQL語句的執行效率。非常直觀的是,你可以在萬能數據庫查詢分析器的執行窗口的狀態欄上,清楚地看到這樣輔助信息,為你的數據庫操作提供功能強大的支持。
下面以DB2為後台數據庫、萬能數據庫查詢分析器的中文版本《DB 查詢分析器》為客户端工具,向大家演示一下《DB 查詢分析器》連接上DB2數據庫(本文的ODBC數據源名稱為unit1562)的這種強大的功能:
(1) 連接上ODBC數據源unit1562後,《DB 查詢分析器》會打開一個命令窗口,輸入以下4條SQL語句(其中最後一條SQL語句沒有顯示出來)。然後點擊“運行”按鈕或者按下F5功能鍵;
(2) 等待這批SQL語句執行完成;
(3) 點擊“結果1”屬性頁,就會看到第一條SQL語句的執行時間及返回的結果,如圖1所示;
DB 查詢分析器以表格形式給出了第一條SQL語句執行的結果,如圖1中箭頭①所示;
圖1 執行第一條SQL語句,執行所需時間:00:00:00:016 ,執行結果行數為7
DB 查詢分析器在狀態欄上顯示出本條SQL語句執行所耗費的時間及返回的結果行數,如圖1中箭頭②所示。
(4) 點擊最左邊的“消息”屬性頁,就會看到這四條SQL語句的執行總體情況,我們來觀察一條UPDATE語句和一條DELETE語句的執行情況。
DELETE語句成功執行,DB 查詢分析器提示“受到影響的行為4行,如圖2中箭頭②所示,即刪除掉了4條記錄。
而DB 查詢分析器在狀態欄上顯示出本組中四條SQL語句執行所耗費的總時間,如圖2中箭頭③所示。
圖2 執行這四條SQL語句,執行總時間:00:00:00:110
(5) 點擊“結果4”屬性頁,就會看到第四條SQL語句的執行時間及返回的結果,如圖3所示;
DB 查詢分析器以表格形式給出了第四條SQL語句執行的結果,如圖3中箭頭①所示;
DB 查詢分析器在狀態欄上顯示出本條SQL語句執行所耗費的時間及返回的結果行數,如圖3中箭頭②所示。
圖3 執行第三條SQL語句,執行所需時間:00:00:00:047 ,返回結果行數:1
(6) 打開另一個窗口,執行兩條INSERT語句,然後點擊“消息”屬性頁,就會看到這2條INSERT語句的執行總時間及返回的提示信息,如圖4所示;
DB 查詢分析器以表格形式給出了這2條SQL語句執行的結果,第1條INSERT語句的執行成功,所影響的行數為1行,即插入了一條記錄,如圖4中箭頭①所示;
而第2條INSERT語句因為要插入一條重複記錄導致主鍵衝突,《DB 查詢分析器》在狀態欄上返回DBMS的錯誤提示信息,如圖4中箭頭②所示。
而執行總時間,則如圖4中箭頭③所示;
圖4 2條INSERT語句,執行總時間:00:00:00:032
4 結束語
在數據庫維護、管理、查詢的時候,經常會遇到一次向DBMS提交多條DML語句的情況。絕大多數的DBMS都沒有提供直觀的工具來返回SQL語句的執行時間、修改或者刪除操作中受到影響的行數。在本文中,筆者以數據庫操作中最常用的DML語句為例,通過《DB 查詢分析器》,你可以很方便、直觀地瞭解批量SQL語句執行結束後的信息,為你的數據庫操作提供功能強大的支持。由於《DB 查詢分析器》是一種跨數據庫平台的產品,所以對於在DB2之外的其它關係數據庫系統,類同於本文中的實例。
參考文獻:
[1] 馬根峯 · 萬能數據庫查詢分析器中的事務管理在Oracle中的應用· 上海:微型電腦應用2008.
[2] 新產品&工具點評 特別推薦:“萬能數據庫查詢分析器”發佈 · 程序員,2007.
[3] 馬根峯 · DB Query Analyzer中的事務管理在DB2中的應用· 北京:電腦編程技巧與維護2011.
由於空間不夠,所以本文中圖1、圖2、圖3未被上傳,看了一下相冊中《博客所用相冊》,不敢把它刪除了,害怕博客中的圖片全都顯示不了。
現在都不知道該如何解決這個問題。
只好給大家一個本人新浪博客中該文章的的鏈接,