DB SQL Monitor v1.7.6

      Designed by Wang Zhaoguan

 

工具说明
------------------------------------------------------------------------------------
      从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和开发人员分析优化做参考

      等待事件是基于“事实”和“数据”的,而非“推测”,结合Oracle AWR、ASH(Sqlserver DMV、Windows计数器),我们可以把性能分析变为可能的方法论。

 

依赖要求
------------------------------------------------------------------------------------
      WinXP/Vista/Win7/Win8/Win10/Windows Server(2003/2008/2012/2016)
      Microsoft .NET Framework 4.0
      SQL Server 2005 或更高版本 ServerAdmin 或 SysAdmin 角色,例如sa账户
      Oracle 10g 或更高版本 Select Any Dictionary 和 Alter System 权限,例如system

 

注意事项
------------------------------------------------------------------------------------
      1、连接Oracle数据库,不依赖于Oracle客户端,请使用EZCONNECT方式连接(即IP/SID),例如192.168.1.1/fsdb
      2、除非特殊需要,请不要选择“KILL阻塞者”(勾选此选项,工具会杀掉阻塞源头对应的会话)
      3、点击“监控”按钮后,工具会自动根据设置规则生成日志,一般不需要干扰其工作,分析工具产生的日志即可
      4、缺省配置超出10000条记录,会自动转储为Excel文件,一般不要取消“自动转储日志”(取消此选项后如果长时间没有清空或保存日志,会造成工具内存占用累增)
      5、点击窗口关闭按钮时,工具会最小化到任务栏继续运行。如果确实要关闭跟踪,请右键任务栏工具图标,选择退出。
      6、工具为Winform程序,选择跟踪时请不要注销当前windows用户,这样会强制关闭此程序。

 

下载地址

      http://files.cnblogs.com/files/zhaoguan_wang/DBSQLMonitor_v1.7.6.zip

 

工具截图

 

核心SQL如下:

--Oracle
SELECT t.SID, t.SERIAL#, t.STATUS, t.EVENT, t.BLOCKING_SESSION, t.BLOCKING_SESSION_STATUS, t.USERNAME, t.MACHINE, t.PROGRAM, t.PROCESS
, t.SECONDS_IN_WAIT, t.P1TEXT, t.P2TEXT, t.P3TEXT, t.P1, t.P2, t.P3
, NVL(s1.SQL_ID, s2.SQL_ID) AS SQL_ID, NVL(s1.SQL_TEXT, s2.SQL_TEXT) AS SQL_TEXT
FROM V$SESSION t
LEFT JOIN V$SQL s1 ON t.SQL_ID = s1.SQL_ID AND t.SQL_CHILD_NUMBER = s1.CHILD_NUMBER
LEFT JOIN V$SQL s2 ON t.PREV_SQL_ID = s2.SQL_ID AND t.PREV_CHILD_NUMBER = s2.CHILD_NUMBER
WHERE t.TYPE = 'USER' AND t.SID != USERENV('SID') --Sqlserver
select t.spid, t.kpid, t.blocked, t.status, t.lastwaittype, t.waitresource, t.waittime/1000 AS waittime, t.last_batch
, DB_NAME(t.dbid) DbName, t.loginame, t.program_name, t.hostname, t.hostprocess, t.cmd, dc.text
from master.sys.sysprocesses t
outer apply master.sys.dm_exec_sql_text(t.sql_handle) dc
where t.spid >= 50 and t.spid != @@SPID

 

更新日志

------------------------------------------------------------------------------------

Updated 2017.04.05 v1.7.6

增加“停止时间”,缺省为当前日期后14天

将清空功能改为列表控件的右键操作

列表控件中选择若干行数据时,可以按Ctrl+C复制选中的内容到剪贴板

保存日志时,按照日期创建日志目录文件夹,触发转储的日志条数调整为10000

 

Updated 2017.03.23 v1.7.5

增加remarks列,Oracle数据库对应的是sql_id信息,sqlserver数据库对应的cmd

数据库连接信息界面禁用输入法,避免每次打开或修改时因当前输入为中文等需要更改输入法

 

Updated 2017.03.21 v1.7.4

修复登录时检查Oracle账户权限不准确的问题。

要求的Oracle用户权限为select any Dictionary 和 alter system

Updated 2017.02.24 v1.7.3

修复因并行执行、RAC节点间阻塞或系统任务阻塞造成工具报错的情况

1、Sequence contains more than one matching element

2、Sequence contains no matching element

Updated 2017.02.20 v1.7.0

修复另存为Excel 时,如果文本内容过长,出现超出32K限制的错误

Updated 2017.02.15 v1.6.5

修复监控阻塞信息时,输出了所有会话的列表

自动转储的最大行数更改为5000,减少工具的内存占用

Updated 2017.01.20 v1.6

增加等待事件和对应的资源参数,应用服务器、应用进程名称和进程ID

保存为Excel文件方便查看、筛选、排序

 

Created 2016.04.08 v1.5

SQL阻塞监控

阻塞时间的自定义设置,包含会话状态和SQL脚本信息

支持Oracle数据库(不依赖于Oracle客户端)

自动生成监控的文本日志

 

 

Demo扩展

====================================================================================

扩展数据库平台的实现

      实现SQLMonitor.SPI定义的服务接口

      将新的实现注册到[setting.xml]文件: 增加一个 name="XX数据库平台" type="扩展实现类的完整命名, 扩展实现类所在的程序集"

扩展多语言支持

      增加新的Resource资源

      将新的语言注册到[setting.xml]文件: 增加一个 name="xx语种区域" display="语言显示名称"

下载

      http://files.cnblogs.com/files/zhaoguan_wang/SQLMonitorV1.9.zip

 

TestSQL

      测试Oracle数据库的连通性,当前运行环境下不同连接方式的响应性能差异

      System.Data.OracleClient .NET Framework为Oracle提供的缺省ADO.NET实现

      Oracle.DataAccess.Client Oracle提供的官方ADO.NET适配(ODP.NET)

      Oracle.ManagedDataAccess Oracle提供的全托管ADO.NET适配,不依赖于Oracle的非托管客户端

      Devart.Data.Oracle 第三方开发商Devart提供的全托管提供的全托管ADO.NET适配

      测试微软缺省实现的bug,例如偶发的两条数据,转换到DataSet/DataTable或DataReader读取时,行数翻倍的情况

DB SQL Monitor 会话状态及等待事件监控工具的更多相关文章

  1. DB SQL Monitor 阻塞及等待事件监控工具

    SQL Monitor Designed By zhaoguan wang 说明------------------------------------------------------------ ...

  2. DBA常用SQL之会话与等待事件

    SELECT * FROM V$SESSION WHERE USERNAME IS NOT NULL AND STATUS = 'ACTIVE' ORDER BY LOGON_TIME, SID; 1 ...

  3. 我的工具:Db SQL Monitor

    SQL Monitor 是一款界面简洁.绿色小巧的sql活动监视器,它能够帮助用户对 SQL Server 运行进程和Job进行实时监视,您可以查看当前执行的SQL/命令并终止. 工具下载地址:htt ...

  4. SQL Server简洁查询正在运行SQL(等待事件)

    通常我们可以使用 sp_who2 我们希望更加简洁的信息,下面这个查询使用系统表sys.sysprocesses,以及sys.dm_exec_sql_text做OUTER APPLY. T-SQL是这 ...

  5. Oracle中常见的33个等待事件小结

    在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相关信息     一. 等待事件的相关知识 1.1 等待事件主要可 ...

  6. ORACLE 常见等待事件

    一. 等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候, ...

  7. oracle常见的等待事件说明

    转自 http://blog.itpub.net/29371470/viewspace-1063994/ 1. Buffer busy waits 从本质上讲,这个等待事件的产生仅说明了一个会话在等待 ...

  8. Oracle等待事件之等待事件详解

    一. 等待事件的相关知识:1.1 等待事件主要可以分为两类:即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候, ...

  9. 【Oracle】等待事件详细内容

    一.等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不 ...

随机推荐

  1. 服务器tomcat/mysql的一些有关命令

    停服务1.“ps -ef|grep java” # 查看tomcat进程id 若下面出现一大串内容,包含有tomcat的目录,前面的四位数的数字就是tomcat应用的进程id 2.“kill -9 进 ...

  2. 2018—自学Selenium+Python 笔记(二)

    此文记录一些python语法不同之处.. 适合有研发基础的童鞋查阅.. 零基础的童鞋就怪怪一个个学吧! 记录也不一定全,随笔一记 多行语句 total=item1+\ item2+\ item3 &q ...

  3. header头参数 确定该文件类型

    'chm'=>'application/octet-stream', 'ppt'=>'application/vnd.ms-powerpoint', 'xls'=>'applicat ...

  4. 八个commit让你学会爬取京东商品信息

    我发现现在不用标题党的套路还真不好吸引人,最近在做相关的事情,从而稍微总结出了一些文字.我一贯的想法吧,虽然才疏学浅,但是还是希望能帮助需要的人.博客园实在不适合这种章回体的文章.这里,我贴出正文的前 ...

  5. Vue.js devtool插件安装后无法使用的解决办法【最简单有效的解决方法】

    在开发vue相关的项目时,使用vue devtools工具是一件极其有趣的事,你所有的操作都马上给你实时反馈. 然而有时候安装好的工具,在chrome中不显示. 在网上找过多次,一直没有找到有效解决方 ...

  6. Python3.7和数据库MySQL交互(二)SQLyog安装教程

    首先安装MySQL数据库,初学者建议选择图形化客户端. Toad for MySQL.MySQL-Front.Navicat for MySQL.SQLyog. 官方下载链接: Toad for My ...

  7. 博客作业06--结构体&指针

    1.本章学习总结 1.1思维导图 1.2.本章学习体会 结构体突破了数组的局限,把不同类型有内在联系的数据汇聚成一个整体,这种新的构造数据类型,提供了更便利的手段,更好的实现代码功能.通过代码建立文件 ...

  8. linux三剑客之grep

    linux基础三剑客之grep 1.grep命令 基本介绍 grep命令是文本本过滤工具,是基于一个模式匹配文件的每一行,grep分类:egrep个fgrep. grep英文名:Global  sea ...

  9. 小妖精的完美游戏教室——东方PROJECT,同人,子机

    //================================================================//// Copyright (C)// All Rights Re ...

  10. Spring ConditionalOnProperty

    Spring Annotation @ConditionalOnProperty spring doc解释 @Conditional: Indicates that a component is on ...