《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语句的执行情况。
UPDATE 语句执行出错,DB 查询分析器给出了出错的提示信息,如图2中箭头①所示;
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未被上传,看了一下相册中《博客所用相册》,不敢把它删除了,害怕博客中的图片全都显示不了。
现在都不知道该如何解决这个问题。
只好给大家一个本人新浪博客中该文章的的链接,