《DB 查询分析器》中断SQL语句的执行
( 广东联合电子收费股份有限公司, 广州 510300)
摘要
关键词
中图分类号:TP311.1.32
How does DB Query Analyzer cancel the SQL statement committed to DBMS
MA Gen-feng
【Abstract 】
【Key words】
0 引言
从事大型数据库查询、数据分析工作的人经常遇到这样的情况,自己编写的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语句的执行。
1 《DB 查询分析器》连接数据库
A、
而在《DB 查询分析器》连接上数据源UNIT156之后,就可以看到进程DBQueryAnalyzer.exe,其状态为“Connect Completed”,表明它已经连接到数据库了。
2 《DB 查询分析器》执行SQL语句
在《DB 查询分析器》中点击“运行”按钮或者按下F5功能键就会向DBMS提交SQL语句。在AIX操作系统上我们依然用 “list applications show detail” 命令来查看进程DBQueryAnalyzer.exe的状态,如图3所示:
图3
通过图3,可以清看到, 《DB 查询分析器》的进程DBQueryAnalyzer.exe状态为“UOW Executing”(如②所示)。①所示还是连接上数据库时进程DBQueryAnalyzer.exe的状态为“Connect Completed”。
3 《DB 查询分析器》中断SQL语句的执行
图4
4 《DB 查询分析器》退出后
5 结束语
在数据库维护、管理、查询的时候,经常会遇到一些SQL语句的执行非常耗时,即使你对查询进行了优化并且充分使用了索引。因此常常需要中断SQL语句的执行。能否中断SQL语句的执行是成熟的数据库客户端工具必须具备的功能。跨越数据库平台的《DB 查询分析器》,完全支持这一功能。并且从后台操作系统中都可以看到中断SQL语句的执行所带来的进程状态的变化。
参考文献:
[1]
该论文已经发表在《软件》 2011年第6期, 参见
万方数据资源: http://c.wanfangdata.com.cn/periodical/ranj/2011-6.aspx 、
中国期刊全文数据库: