`

《DB 查询分析器》中断SQL语句的执行

 
阅读更多

《DB 查询分析器》中断SQL语句的执行

<wbr>马根峰</wbr>

( 广东联合电子收费股份有限公司, 广州 510300)

摘要<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> 从事数据库查询、数据分析工作的人会经常遇到这样的情况,有些SQL语句的执行非常耗时,并且数据库厂家提供的客户端工具无法看出SQL语句执行的时间,有时还不得不中断已经提交的SQL语句的执行。万能数据库查询分析器中英文版本《DB 查询分析器》、《DB Query Analyzer》不仅能够直接获取SQL语句执行的时间,而且能够真正中断SQL语句的执行,这从前台界面或者从后台操作系统都可以验证到SQL语句被中断,而不会在数据库服务器主机产生僵尸进程。本文以中文版本《DB 查询分析器》连接IBM 550小型机AIX操作系统下DB2数据库为例,来展现整个过程。

关键词<wbr><wbr> DB Query Analyzer;数据库客户端工具;中断SQL语句的执行<wbr></wbr></wbr></wbr>

中图分类号:TP311.1.32<wbr><wbr><wbr><wbr><strong>文献标识码</strong>:A<wbr><wbr><wbr><wbr><wbr><strong>DOI</strong>:10.3969/j.issn.1003-6970.2011.06.013</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

How does DB Query Analyzer cancel the SQL statement committed to DBMS

MA Gen-feng<wbr><wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>( GuangDong Unitoll collection incorporated, GuangZhou 510300)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

【Abstract 】<wbr><wbr> Persons engage in database querying or Data Analysis always face the situation they cann’t get any known of time consumed of the SQL statement committed to DBMS directly by the client tools supplied by DBMS Company. Some time they have to cancel the SQL statement committed to DBMS already. However, you can know the time consumed directly form the status bar of DB Query Analyze. Not only the simplified Chinese edition but also the English edition of DB Query Analyzer makes it easy to cancel the SQL statement being executing. You can verify it by the command of Operation System. You do not worry about the hanged process after you shutdown DB Query Analyzer. This paper gives you the whole process how DB Query Analyze do it when DB Query Analyze connected to DB2 DBMS based on IBM AIX/P550.</wbr></wbr>

【Key words】 <wbr><wbr>DB Query Analyzer;Client tools of DBMS;Cancel the SQL statement being executing</wbr></wbr>

<wbr></wbr>

0<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 引言 <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

从事大型数据库查询、数据分析工作的人经常遇到这样的情况,自己编写的SQL语句充分使用了索引,并且经过了优化,但由于数据表太大,访问数据库也非常耗时。而大部分DBMS(包括大型数据库系统Oracle、Sybase、DB2等等)的客户端工具都不显示SQL执行了多少时间。

中国本土程序员马根峰推出的个人作品----万能数据库查询分析器,其中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》,具有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。在《程序员》2007第2期的“新产品&工具点评”部分,编辑“特别推荐”了“万能数据库查询分析器”发布。本期只点评了5个工具,分别是“Adobe Acrobat 8 中文版”、“迅雷搜索 1.7 新版上线”、“Google 桌面搜索 5.0 中文发布”、“BEA 发布 WebLogic SIP Server 3.0”和特别推荐“万能数据库查询分析器”发布。前面4个都是国内外大型软件公司的产品,只有“万能数据库查询分析器”是个人创作的软件。截止到目前,在国内最著名的软件下载网站“中关村在线”中下载量近9万次,位居整个数据库类排行谤中前20位。在世界范围内,从功能上也仅有国外的Query Tool可以与万能数据库查询分析器比肩,万能数据库查询分析器当属国内第一查询分析器无疑。

你不仅可以直接在万能数据库查询分析器的状态栏上看到SQL语句的执行时间,而且随时可以中断SQL语句的执行,并且在数据库服务器主机上通过DBMS提供的命令可以清楚地看到万能数据库查询分析器进程状态变化(DB2而言,状态由“Executing”变为“Waiting”)。而不是像某些数据库客户端工具那样,需要从前台关闭程序,然后再从后台操作系统Kill掉还在运行的僵尸进程。因此,能够中断已经向DBMS提交的SQL语句的执行,是成熟的DBMS客户端工具必须具备的功能。

下面以IBM AIX操作系统上安装的DB2数据库为例,从前台《DB 查询分析器》、后台AIX操作系统层面向大家详细说明《DB 查询分析器》如何中断SQL语句的执行。

<wbr></wbr>

1<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 《DB 查询分析器》连接数据库</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

A、<wbr><wbr><wbr><wbr> 连接上ODBC数据源unit156后,《DB 查询分析器》会打开一个命令窗口,输入一条非常耗时的SQL语句如下。</wbr></wbr></wbr></wbr>

<wbr></wbr>


<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 图1 <wbr><wbr><wbr>《DB 查询分析器》连接上数据库后,在打开的一个窗口中,输入SQL语句</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>


<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 图2<wbr><wbr> 《DB 查询分析器》连接上数据库后,查看后台,显示 “Connect Completed”</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr>通过图2,可以清楚地看到,在打开《DB 查询分析器》连接上数据源UNIT156之前,在AIX操作系统上用“list applications show detail”命令找不到《DB 查询分析器》的进程DBQueryAnalyzer.exe,如①所示。</wbr></wbr></wbr>

而在《DB 查询分析器》连接上数据源UNIT156之后,就可以看到进程DBQueryAnalyzer.exe,其状态为“Connect Completed”,表明它已经连接到数据库了。

<wbr></wbr>

2<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 《DB 查询分析器》执行SQL语句</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

在《DB 查询分析器》中点击“运行”按钮或者按下F5功能键就会向DBMS提交SQL语句。在AIX操作系统上我们依然用 “list applications show detail” 命令来查看进程DBQueryAnalyzer.exe的状态,如图3所示:

<wbr><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=4b70463f0100vd7u&amp;url=http://s15.sinaimg.cn/orignal/4b70463fgb0c0da5bfe2e" target="_blank"></a></wbr>

图3<wbr><wbr> 执行SQL语句过程中查看后台进程状态</wbr></wbr>

通过图3,可以清看到, 《DB 查询分析器》的进程DBQueryAnalyzer.exe状态为“UOW Executing”(如②所示)。①所示还是连接上数据库时进程DBQueryAnalyzer.exe的状态为“Connect Completed”。

<wbr></wbr>

3<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 《DB 查询分析器》中断SQL语句的执行</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 在《DB 查询分析器》菜单“查询”中选择“停止执行”或者点击工具栏中的“取消执行查询”按钮,《DB 查询分析器》中会看到“用户已取消查询”的提示。如图4所示:</wbr></wbr></wbr></wbr>

图4<wbr> 点击《DB 查询分析器》中“取消执行查询”按钮,SQL语句执行被中断</wbr>

<wbr><wbr>在AIX操作系统上我们依然用“list applications show detail” 命令来查看进程DBQueryAnalyzer.exe的状态从“UOW Executing”变为“UOW Waiting”,中断操作并没有产生任何僵尸时程。</wbr></wbr>

<wbr><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=4b70463f0100vd7u&amp;url=http://s7.sinaimg.cn/orignal/4b70463fgb0c0dde4bcd6" target="_blank"></a><br><wbr><wbr><wbr><wbr>图5<wbr><wbr> 中断SQL语句执行后,后台进程DBQueryAnalyzer.exe的状态为“UOW Waiting”</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

4<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 《DB 查询分析器》退出后</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr> 《DB 查询分析器》退出后,AIX操作系统上执行命令“list applications show detail”,已经找不到进程DBQueryAnalyzer.exe,没有产生任何僵尸时程。如图6所示:</wbr></wbr></wbr></wbr>

<wbr><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=4b70463f0100vd7u&amp;url=http://s6.sinaimg.cn/orignal/4b70463fgb0c0dfe198d5" target="_blank"></a><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 图6<wbr><wbr> 退出《DB 查询分析器》后,查看后台,DBQueryAnalyzer.exe进程结束</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

5<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 结束语</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

在数据库维护、管理、查询的时候,经常会遇到一些SQL语句的执行非常耗时,即使你对查询进行了优化并且充分使用了索引。因此常常需要中断SQL语句的执行。能否中断SQL语句的执行是成熟的数据库客户端工具必须具备的功能。跨越数据库平台的《DB 查询分析器》,完全支持这一功能。并且从后台操作系统中都可以看到中断SQL语句的执行所带来的进程状态的变化。

<wbr></wbr>

参考文献:

[1] <wbr>马根峰 · 万能数据库查询分析器中的事务管理在Oracle中的应用· 上海:微型电脑应用2011.11</wbr>

<wbr> [2]<wbr> 新产品&amp;工具点评<wbr> 特别推荐:“万能数据库查询分析器”发布 · 程序员,2007.2</wbr></wbr></wbr>

该论文已经发表在《软件》 2011年第6期,参见

万方数据资源: http://c.wanfangdata.com.cn/periodical/ranj/2011-6.aspx

中国期刊全文数据库:

http://acad.cnki.net/Kns55/oldNavi/n_CNKIPub.aspx?naviid=59&BaseID=RJZZ&NaviLink=%e6%a3%80%e7%b4%a2%3a%e8%bd%af%e4%bb%b6-%2fKns55%2foldNavi%2fn_list.aspx%3fNaviID%3d1%26Field%3dcykm%24%25%22%7b0%7d%22%26Value%3d%25e8%25bd%25af%25e4%25bb%25b6%26selectIndex%3d0%7c%e8%bd%af%e4%bb%b6

分享到:
评论

相关推荐

    《DB查询分析器》中断SQL语句的执行.pdf

    《DB查询分析器》中断SQL语句的执行.pdf

    DB查询分析器批量执行多条SQL语句并查看各自的执行时间

    但万能数据库查询分析器却给你提供了这样的便利,它可以向DBMS一次提交多条SQL语句,并且它还会向你返回每条SQL语句执行所需要的时间、受影响的记录(或者返回的记录)条数。如果其中某些SQL语句有错误,它还会给你返回...

    《DB 查询分析器》批量执行多条SQL语句并显示执行时间

    但万能数据库查询分析器却给你提供了这样的便利,它可以向DBMS一次提交多条SQL语句,并且它还会向你返回每条SQL语句执行所需要的时间、受影响的记录(或者返回的记录)条数。如果其中某些SQL语句有错误,它还会给你返回...

    DB Query Analyzer》中断SQL语句的执行

    在《程序员》2007第2期的“新产品&工具点评”部分... 《万能数据库查询分析器》中英文版本《DB 查询分析器》、《DB Query Analyzer》均采用了EXE文件加壳技术。但会造成杀毒软件误将其当作木马病毒。 大家不需要担心。

    万能数据库查询分析器《DB 查询分析器》 1.0

    4、提供了中断正在执行的SQL语句的功能。 5、提供了快速生成某些常用SQL语句(如多种数据库系统的前N条记录)的功能。 6、提供了执行多条SQL语句的支持; 7、提供了对执行的一...

    《DB 查询分析器》批量执行DML语句并返回更详细的信息

    DML语句,包括插入、删除、修改、检索,是数据库... 《万能数据库查询分析器》中英文版本《DB 查询分析器》、《DB Query Analyzer》均采用了EXE文件加壳技术。但会造成杀毒软件误将其当作木马病毒。 大家不需要担心。

    微型Sql Server查询分析器、数据库比较工具,SQL语句编写助手

    微型Sql Server查询分析器: 有时为了解决问题,需要执行SQL脚本,但是电脑上又没有装SQL SERVER,要下载,还要安装,十分麻烦。这个查询分析器是SQL Server 2000里提取出来的,压缩文件只有900多K,不需安装,...

    万能数据库查询分析器(DB查询分析器) v7.023.zip

    万能数据库查询分析器(中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》)拥有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。 DB 查询分析器的功能: 1、对数据库事务的支持。允许用户...

    SQL语句生成及分析器

    无论多么复杂的语句,都能分析出来(包括SQL各子句中嵌套的SQL语句) 5、数据库视图定义和重建 6、支持将SQL查询语句,替换为插入(Insert into)和更新(Update)语句 7、附属工具内嵌入Delphi IDE(支持Delphi 5和...

    ODBC万能查询器,DB 查询分析器(经典)

    你可以通过它查询ODBC数据源...强大的功能、友好的操作界面、良好的操作性、跨不同的数据库平台,是您选择&lt;&lt;DB 查询分析器&gt;&gt;的理由,它为数据库应用的开发者提供更方便、快捷的支持,同时也是数据库维护的良好助手。

    DB2 SQL语句性能分析方法

    DB2 UDB 提供了丰富的工具,以便用户分析定位问题,本文仅讨论如何利用DB2的语句事件监测器来了解应用系统中SQL语句的执行情况。

    DB 查询分析器7.01新增的周、月SQL执行计划功能

    本文将以中文版本DB 查询分析器7.01版本为例,详细介绍 新增的强大的周和月的“SQL 执行计划”、执行的多条SQL语句返回的记录集保存到多个文件中、执行结果保存文件时用户自定义导出文件中的字段间分隔符与行结束符...

    SQL语句生成及分析器(中文绿色)

    1、支持绝大部分数据库,包括 大型数据库Oracle,Sybase(包括SQL AnyWhere),DB2,MS_SQL 中型数据库MS_Access,MySQL ... 10.3 SQL语句关键词高亮度显示 10.4 简单SQL查询语句转换为Delete,Update,Insert语句

    DB 查询分析器7.01 新增的保存执行结果到多个文件功能

    本文将以中文版本DB 查询分析器7.01版本为例,详细介绍 新增的执行的多条SQL语句返回的记录集保存到多个文件中、执行结果保存文件时用户自定义导出文件中的字段间分隔符与行结束符。

    DB2 查询分析器 C# ERWIN

    用c#写的,最主要的有点就是可以读取erwin中的物理视图和逻辑视图,方便写sql语句,并且方便执行(只输入表名就可以作为“ select * from 表名”来执行)。

    sql语句生成与分析器

    大型数据库Oracle(包括Oracle Lite),Sybase(包括SQL AnyWhere),DB2,MS_SQL 中型数据库MS_Access,MySQL 桌面型数据库Paradox,DBF系列数据库,MS_Execl,Text 其他支持SQL 92标准的数据库

    sql语句生成与分析器.rar

    11.3 SQL语句关键词高亮度显示 11.4 简单SQL查询语句转换为Delete,Update,Insert语句 11.5 复制为字符串(支持对Java、C#、Delphi、VB、PowerBuilder开发语言的支持) 11.6 灵活的拖放功能 11.7 在线版本...

Global site tag (gtag.js) - Google Analytics