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读取时,行数翻倍的情况

最新文章

  1. Linux 信号(二)—— signal 函数
  2. C++语法
  3. java函数substring()
  4. PHP利用Curl实现多线程抓取网页和下载文件
  5. 用PowerShell脚本实现对SharePoint页面Title的修改
  6. JDBC学习笔记2
  7. [Asp.net]Uploadify所有配置说明,常见bug问题分析
  8. kaili 2.0 虚拟机修改ip
  9. bootstrap学习笔记<六>(表单二之按钮)
  10. Python基础 第二天
  11. spring 与 CXF 整合 webservice 出现error “Unable to locate Spring NamespaceHandler for XML schema namespace” 总结
  12. CSS-Sprite-Generator丨CSS雪碧在线生成器
  13. -_-#【jQuery插件】Spinner 数字选择器
  14. linux中patch命令 -p 选项
  15. Eclipse的使用与Oblect类的常用方法_DAY11
  16. Java的System.out.println()的解析
  17. 第四章.使用ant编译hadoop eclipse插件
  18. linux的mysql操作
  19. 线上服务内存OOM问题定位三板斧
  20. Hibernate缓存何时使用和如何使用

热门文章

  1. 对yolo与fasterrcnn anchors的理解
  2. selenium中切换浏览器不同tab 的操作
  3. redis 脑裂等极端情况分析
  4. ACE如何生成VS工程之mwc.pl用法
  5. web前端页面设计小笔记
  6. Java ee Turorial Hello1 Hello1.java解析
  7. python2入门(3)
  8. java 反射简说
  9. Linux虚拟机部署单机solr报错500解决方法之一
  10. asp.net,根据gridview 中checkbox复选框选中的行对数据库进行操作