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. linux运维工作内容及岗位要求

    什么是Linux?大家日常使用电脑听歌.打游戏娱乐或处理日常工作时,接触到最多的就是Windows操作系统,电脑如果不安装Windows系统是无法进行娱乐和工作的,所有的软件程序都必须运行在操作系统之 ...

  2. Java中String类型的数据比较

    在Java中如果想比较两个字符串是否相等,可以使用string1==string2 或string1.equal(string2)来比较. 但是,第一种方法过于局限.例如, String string ...

  3. 从网络上获取图片,并写入excel文件

    package com.weChat.utils; import com.manage.utils.DateUtil;import com.manage.utils.MD5Util;import or ...

  4. Linux命令 ls 和 ll 的使用方法与基本区别

    Linux 命令 ls 和 ll 的使用方法: ll:罗列出当前文件或目录的详细信息,含有时间.读写权限.大小.时间等信息 ,像Windows显示的详细信息.ll是“ls -l"的别名.相当 ...

  5. echarts 折线图点击高亮

    echarts中注册事件很多 ,记录下今天做的折线图点击高亮: 查了api,看了半天,发现折线图点击时只能做到圆点变大,并不能实现点击线条,整条线条高亮,也真是醉了. 上图: 如图所示,只能圆点变大. ...

  6. [C# 基础知识系列]专题五:当点击按钮时触发Click事件背后发生的事情 (转载)

    当我们在点击窗口中的Button控件VS会帮我们自动生成一些代码,我们只需要在Click方法中写一些自己的代码就可以实现触发Click事件后我们Click方法中代码就会执行,然而我一直有一个疑问的—— ...

  7. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  8. Linux 文件恢复

    可以恢复,使用系统自还工具debugfs来还原删除的文件 步骤详解 1. 查看一下当前系统版本号,及文件系统格式 [root@localhost ~]# df -T Filesystem Type 1 ...

  9. curl传输数据时遇到的问题整理

    1.get传参,参数带有空格的传输方式 因为使用get传输的时候,有的参数可能存在有空格,为了避免传输是错误是字符替代“%20” 或者使用函数转译一下参数http_build_query($param ...

  10. 前端浏览器自动刷新神器:Browsersync

    [安装] 1 npm install -g browser-sync [静态项目使用browsersync] 自己可以去browsersync官网查看,其实使用很简单,总结下就是: 1 browser ...