`
wsql
  • 浏览: 11755953 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

DB Query Analyzer 中断SQL语句的执行

 
阅读更多

<wbr>DB Query Analyzer 中断SQL语句的执行</wbr>

马根峰

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

摘要:<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr> 万能数据库查询分析器有两个版本:DB 查询分析器(中文版本)和 DB Query Analyzer(英文版本)。它不仅能够直接获取SQL语句执行的时间,而且能够真正中断非常耗时的SQL语句的执行,从前台界面或者从后台操作系统都可以验证到SQL语句被中断,而不会在数据库服务器主机产生僵尸进程。这些优点是绝大部分数据库自带的客户端工具所不具备的,文章以英文版本 DB Query Analyzer 连接Windows2000 Server操作系统的MYSQL数据库为例,来展现整个中断处理过程。

关键词:<wbr><wbr> DB Query Analyzer;MYSQL;SQL语句;数据库<wbr></wbr></wbr></wbr>

中图法分类号:<wbr><wbr><wbr><wbr><wbr> TP392   <strong>文献标识码:</strong> A<wbr><wbr><wbr>    <strong>文章编号:</strong>1006-8228(2011)12-35-02<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr><wbr></wbr>

<wbr></wbr>

DB Query Analyzer to cancel a Running<wbr>SQL statement</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></wbr></wbr></wbr></wbr></wbr>MA Gen-feng<wbr><wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> ( Guangdong Unitoll Collection Incorporated, GuangZhou,Guangdong 510300, China)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

Abstract:DB Query Analyzer has two version:<wbr>simplified Chinese edition and English edition. It can<wbr>not only get known the running time of SQL statement directory,but alse cancel a running and very time-consuming<wbr>SQL statement indeed, which can be verified on foreground interface or background operation system, and it does not cause zombie processes in database server. Most<wbr>database<wbr>don't provie the above functions in their client tools. Taking DB Query Analyzer connected to MySQL database based on Windows2000 Server as an example,the whole process of canceling a running SQL statement is illustrated.</wbr></wbr></wbr></wbr></wbr>

Key words: <wbr><wbr>DB Query Analyzer;MYSQL;SQL statement;database</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个都是国内外大型软件公司的产品,只有“万能数据库查询分析器”是个人创作的软件。截止到目前,在国内最著名的软件下载网站“中关村在线”中下载量近九万次,位居整个数据库类排行谤中前20位。在世界范围内,从功能上也仅有国外的Query Tool可以与万能数据库查询分析器比肩,万能数据库查询分析器无疑当属国内第一查询分析器。

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

下面以Windows2000 Server操作系统上安装的MYSQL数据库为例,从前台 DB Query Analyzer、后台MYSQL层面向大家详细说明 DB Query Analyzer 如何中断SQL语句的执行。

1<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> DB Query Analyzer 连接数据库</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

以用户mgf连接上ODBC数据源mysql_mgf后, DB Query Analyzer 会打开一个命令窗口,输入一条非常耗时的SQL语句如图1所示。

<wbr></wbr>

图1<wbr><wbr> DB Query Analyzer连接上数据库后,在打开的一个窗口中,输入SQL语句</wbr></wbr>

<wbr></wbr>

图2<wbr><wbr> DB Query Analyzer连接上数据库后,查看后台,看到ID为3的进程</wbr></wbr>

<wbr></wbr>

通过图2,可以清楚地看到,在打开 DB Query Analyzer 连接上数据源mysql_mgf之前,在MYSQL命令行窗口用“show processlist”命令找不到以用户“mgf”登录的ID为3的DBQueryAnalyzer.exe后台进程。

在 DB Query Analyzer 连接上数据源mysql_mgf之后,再执行“show processlist”命令如箭头①所示,就可以看到如箭头②ID为3的进程了,表明它已经连接到数据库了,其状态为“<wbr> ”。</wbr>

<wbr></wbr>

2<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> DB Query Analyzer 执行SQL语句</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

在 DB Query Analyzer 中点击“运行”按钮或者按下F5功能键就会向DBMS提交SQL语句。在MYSQL命令行窗口我们依然用 “show processlist” 命令来查看ID为3进程的状态,如图3所示:

<wbr></wbr>

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

通过图3,可以清看到, DBQueryAnalyzer.exe的ID为3的后台进程状态为“Copying to tmp table”(如箭头①所示)。箭头②所示还是连接上数据库时ID为3的后台进程状态为“ ”。

<wbr></wbr>

3<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> DB Query Analyzer 中断SQL语句的执行</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

在 DB Query Analyzer 菜单“Query”中选择“Stop”或者点击工具栏中的“Cancel”按钮,《DB Query Analyzer》中会看到“Query Canceled”的提示。如图4所示:

<wbr></wbr>

图4<wbr> 点击DB Query Analyzer中“中断”按钮,SQL语句执行被中断</wbr>

<wbr></wbr>

<wbr>图5中,在MYSQL命令行窗口我们依然用“show processlist” 命令来查看ID为3的后台进程状态从“Copying to tmp table”变为“<wbr> ”,中断操作并没有产生任何僵尸时程,如箭头①所示。</wbr></wbr>

<wbr></wbr>

图5<wbr><wbr> 中断SQL语句执行后,DB Query Analyzer.exe的ID为3的后台进程状态为“<wbr> ”</wbr></wbr></wbr>

<wbr></wbr>

4<wbr><wbr><wbr><wbr><wbr><wbr><wbr> DB Query Analyzer 退出后</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>DB Query Analyzer 退出后,MYSQL命令行窗口执行命令“show processlist”,已经找不到DBQueryAnalyzer.exe后台ID为3的进程,没有产生任何僵尸时程。如图6所示:</wbr>

<wbr></wbr>

图6<wbr><wbr> 退出DB Query Analyzer后,查看后台,ID为3的进程结束</wbr></wbr>

<wbr></wbr>

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

在数据库维护、管理、查询的时候,经常会遇到一些SQL语句的执行非常耗时,即使你对查询进行了优化并且充分使用了索引。因此常常需要中断SQL语句的执行。能否中断SQL语句的执行是成熟的数据库客户端工具必须具备的功能。跨越数据库平台的 DB Query Analyzer 完全实现这一功能,从后台数据库服务器上可以看到中断SQL语句的执行所带来的进程状态的变化,并且在后台数据库服务器上不会产生任何僵尸进程。

<wbr></wbr>

参考文献:

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

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

[3]<wbr> 马根峰 · DB Query Analyzer中的事务管理在DB2中的应用[M]· 北京:电脑编程技巧与维护2011.22</wbr>

[4]<wbr> 马根峰 · 《DB 查询分析器》批量执行DML语句并返回更详细的信息[M]· 北京:电脑编程技巧与维护2011.24</wbr>

[5]<wbr> 张龙祥,黄正端,陶影<wbr> · 数据库原理与设计[M] · 成都:西南交通大学出版社,1995</wbr></wbr>

本文收录于<<计算机时代>>2011年第12期

分享到:
评论

相关推荐

    DB Query Analyzer中断SQL语句的执行.pdf

    DB Query Analyzer中断SQL语句的执行.pdf

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

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

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

    在数据库维护、管理、查询的时候,经常会遇到一次... 《万能数据库查询分析器》中英文版本《DB 查询分析器》、《DB Query Analyzer》均采用了EXE文件加壳技术。但会造成杀毒软件误将其当作木马病毒。 大家不需要担心。

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

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

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

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

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

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

    巅峰之作----“万能数据库查询分析器”5.01 发布

    在“窗口”菜单中,增加了当前所有窗口的SQL语句的执行状态显示,对于正在执行的窗口,在“窗口” 菜单对应的菜单项前增加了 “运行图标”显示;而已经结束运行的窗口没有任何图标显示(这一点跟4.03版本一样)。

    DB 查询分析器 方便地创建DB2自定义函数

    本文详细地介绍了“万能数据库查询分析器”,中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》6.03 来方便地创建DB2函数。创建DB2存贮过程与此相同,大家可以参照以下步骤。另外,本示例还适用于SQL语句要...

    万能数据库查询分析器使用技巧(十五)

    本文详细地介绍了“万能数据库查询分析器”,中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》6.01 中新增的SQL “执行计划”功能。 从6.01版本开始,用户可以对要执行的SQL 脚本建立执行计划,在指定的...

    实现使用SQL语句直接高效地访问文本文件

    QueryAnalyzer》。万能数据库查询分析器集哈希技术、链表等多种数据结构于一体,使用先进系统开发技术,经历4年的研究、开发、测试周期后在2006年面世。之后7年来一直在进行不断地完善、升级,到目前为止,最新版本...

    万能数据库查询分析器使用技巧之(十三)

    本文详细地介绍了"万能数据库查询分析器",中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》在 EXCEL文件 处理方面非常强大的功能,要注意的是,EXCEL文件的第一行需要有列名。从5.03版本开始,"万能...

    有用的SQL语句(删除重复记录,收缩日志)

    删除重复记录,将TABLE_...name 与此相关的是“select into”选项,可以在数据库属性 对话框中,勾起来此项,或者在Query Analyzer中执行 execute sp_dboption ‘db_name’,’select into’,’true’ 开启。默认值

Global site tag (gtag.js) - Google Analytics