SQL Monitor Designed By zhaoguan wang 说明------------------------------------------------------------------------------------ 从SQL阻塞和等待事件的角度,了解数据库运行情况,供DBA和开发人员分析优化做参考 要求---------------------------------------------------------------------------------…
DB SQL Monitor v1.7.6       Designed by Wang Zhaoguan   工具说明 ------------------------------------------------------------------------------------       从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和开发人员分析优化做参考       等待事件是基于"事实"和"数据"的,而非"推测",…
SELECT * FROM V$SESSION WHERE USERNAME IS NOT NULL AND STATUS = 'ACTIVE' ORDER BY LOGON_TIME, SID; 1.查询会话 SELECT P.SPID, S.SID, S.OSUSER, S.MACHINE, S.PROGRAM, S.LOGON_TIME, Q.MODULE, S.SERIAL#, Q.SQL_ID, Q.SQL_TEXT, Q.SQL_FULLTEXT FROM V$PROCESS P I…
SQL Monitor 是一款界面简洁.绿色小巧的sql活动监视器,它能够帮助用户对 SQL Server 运行进程和Job进行实时监视,您可以查看当前执行的SQL/命令并终止. 工具下载地址:https://download.csdn.net/download/qq_39547670/10831880 有时间在扩展其他数据库,现在支持 Oracle Sqlserver.…
通常我们可以使用 sp_who2 我们希望更加简洁的信息,下面这个查询使用系统表sys.sysprocesses,以及sys.dm_exec_sql_text做OUTER APPLY. T-SQL是这样的: SELECT spid, blocked, DB_NAME(sp.dbid) AS DBName, program_name, waitresource, sp.waittime, sp.stmt_start, lastwaittype, sp.loginame, sp.Status, sp…
在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相关信息     一. 等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件.2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件 是在调整数据库的时候…
上周,在SQL Server数据库下面遇到了一个有意思的SQL阻塞(SQL Blocking)案例.其实个人对SQL Server的阻塞还是颇有研究的.写过好几篇相关文章. 至于这里为什么要总结一下这个案例,因为这个案例有点意思: 1:使用DMV视图捕获到的Blocking SQL为一个查询语句(这个不是真正引起阻塞的源头SQL语句),等待事件为LCK_M_S. 2:出现阻塞的会话非常多,阻塞的量非常大,使用DMV视图始终捕获不到相关表的DML操作语句.捕获到全是SELECT语句. 我们知道,在…
一. 等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件.2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件 是在调整数据库的时候需要关注与研究的. 在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件…
转自 http://blog.itpub.net/29371470/viewspace-1063994/ 1. Buffer busy waits 从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是:--当一个会话视图修改一个数据块,但这个数据块正在被另一个会话修改时.--当一个会话需要读取一个数据块,但这个数据块正在被另一个会话读取到内存中时.在新的版本中,第二种情况已经被独立出来,以read by other ses…
一. 等待事件的相关知识:1.1 等待事件主要可以分为两类:即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件.2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研究的.在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相…
一.等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件.2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件 是在调整数据库的时候需要关注与研究的. 在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的…
一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指Oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件. 2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研究的. 在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待…
 [等待事件]等待事件系列(3+4)--System IO(控制文件)+日志类等待   1  BLOG文档结构图     2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 控制文件类等待 ② 日志类等待   2.2  相关参考文章链接 [推荐] 等待事件系列(1)--User I/O类型(下) http://blog.itpub.net/26736162/viewspace-2124435…
一. db file parallel write等待事件 引自如下blog: http://oradbpedia.com/wiki/Wait_Events_-_db_file_parallel_write db文件并行写 db文件并行写等待事件属于Oracle数据库写入程序(DBWR)进程,因为它是将块从SGA写入数据文件的唯一进程.当是写入时,DBWR进程编译一组脏块,将批处理交给操作系统,并等待db文件并行写事件以完成I / O.虽然用户会话从来没有遇到db文件并行写等待事件,但这并不意味…
OLEDB等待事件介绍 OLEDB等待类型是SQL SERVER 数据库中最常见的几种等待类型之一.它意味着某个会话(SPID)通过SQL Server Native Client OLEDB Provider发生了调用请求并等待数据库返回所需的数据.它出现在远程系统(remote system )或网络连接速度不够快,因此调用服务器必须等待要返回结果的情况下.OLEDB等待事件一般是由那些活动造成呢?它一般由下面一些事件引起: 远程过程调用(Remote procedure calls) 链接…
SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'db file parallel read'; EVENT# NAME PARAMETER1 PARAMETER2 PARAMETER3 ---------- ------------------------------ --------------- --------------- --------------- db…
db file scattered read 等待事件: 我们经常会见到db file scattered read  等待事件,在生产环境中,这个等待事件可能更为常见.这个事件表明用户进程正在读数据到Buffer Cache中,等待直到I/O调用返回.db file scattered read发出离散读,将存储上连续的数据块离散的读入到多个不连续的内存位置.Scattered Read通常是多块读,在Full Table Scan或Fast Full Scan等访问方式下使用.Scatter…
db file sequential read等待事件有3个参数:file#,first block#,和block数量. 这个等待事件有3个参数P1,P2,P3, 其中P1代表Oracle要读取的文件的绝对文件号, P2代表Oracle从这个文件中开始读取的起始数据块号, P3代表读取的BLOCK数量,通常这个值为1,表明是道单个BLOCK被读取. SQL> select SESSION_ID,NAME,P1,P2,P3,WAIT_TIME,CURRENT_OBJ#,CURRENT_FILE#…
  前言: 本文是对SQLSkills上一篇关于SQL Server中THREADPOOL等待的博客的翻译,本文也不是完全翻译,有些地方适当加入了自己的一些认知.如有翻译不对或不好的地方,敬请指出,大家一起学习进步.尊重原创和翻译劳动成果,转载时请注明出处.谢谢! 英文原文地址:https://www.sqlskills.com/help/waits/threadpool/ 翻译原文地址:http://www.cnblogs.com/kerrycode/p/8875781.html 等待事件描述…
在ORACLE当中有两个很常见的等待事件"SQL*Net message from client"与"SQL*Net message to client",两者有点区别,下面整理这方面的资料如下: SQL*Net message from client      表示服务端等待着Cilent发来请求让它处理,这时就会产生SQL*Net message from client等待事件. 而我们把这种Wait叫做空闲事件(ildel event),并不代表真正的Load…
db file sequential read-数据文件顺序读取 等待事件: "db file sequential read" Reference Note (文档 ID 34559.1) 这种等待事件是一种IO读请求相关的等待.与”db file scattered read“不同,因为”sequential read“是将数据读到连续的内存(注意:这里指的是读到相连的内存,不是说读取的是连续的数据块.同时一次”scattered read“可以读多个块,将他们分散到SGA的不同b…
1.产生原因 db file sequential read这个是非常常见的I/O 相关的等待事件.表示发生了与索引扫描相关的等待.意味着I/O 出现了问题,通常表示I/O竞争或者I/O 需求太多. db file parallel read这个事件表明会话正在并行执行多个读取的需求. 2.确定产生问题原因的对象 awr报告“SQL ordered by Reads”.v$sql视图中i/o较多的sql. 3.解决办法 (1)块读取通常是不可避免的,但可以通过最小化不必要的IO 以避免不必要的块…
为什么db file sequential read事件在full table scan操作中显现,为什么在多块读中为什么会有单块读存在 ? extent的大小 :当扩展区中的最后一组块仅是1个块,oracle使用单块读来提取这个块.这正常来说不是一个问题,除非你扩展区尺寸太小.以下是一个event 10046的trace文件,显示在全表扫描操作中包围的db file sequential read事件.表块尺寸是8K,MBRC是8个块,扩展区尺寸是72K(9个块).如果表是大的,对表的全表扫描…
很多网友对系统内频繁发生的db file sequential read等待事件存有疑问,那么到底在那些场景中会触发该单块读等待事件呢? 在我之前写的一篇博文<SQL调优:Clustering Factor影响数据删除速度一例>中总结了db file sequential read等待事件可能发生的场景,在这里再share以下: ”db file sequential read”单块读等待是一种最为常见的物理IO等待事件,这里的sequential指的是将数据块读入到相连的内存空间中(cont…
资源等待类型 并行:CXPACKET Buffer:PAGEIOLATCH_X 非Buffer:LATCH_X I/O:ASYNC_IO_COMPITION:IO_COMPITION CPU:SOS_SCHEDULER_YIELD 日志:WRITELOG&LOGBUFFER     锁阻塞:LCK_* 内存:RESOURCE_SEMAPHORE 外部:PREEMPTIVE_XXX 备份:DISKIO_SUSPENDE 等待事件: ASYNC_NETWORK_IO  清空当前等待事件统计  : …
db file sequential read db file sequential read等待事件有3个参数:file#,first block#,和block数量.在10g中,这等待事件受到用户I/O等待级别的影响.当处理db file sequential read等待事件的时候,牢记以下关键想法. l         Oracle进程需要一个当前不在SGA中的块,等待数据库块从磁盘读入到SGA中 l         要看的两个重要的数字是单独会话的TIME_WAITED和AVERAGE…
先查看存在的等待事件:col event for a40col WAIT_CLASS format a20select sid,WAIT_CLASS,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAIT from v$session_wait where event not like 'SQL%' and event not like 'rdbms%'; 复制上面查到的等待事件,替换下面红色字体.即可找到具体的SQL语句col objn format a26col o…
对于最小化db file sequential read 事件所带来的影响,你可以做的另一件事情是减少AVERAGE_WAIT时间. 这是会话必须等待从磁盘提取单块的平均时间,这些信息可以从v$session_event视图中得到. 在较新的存储子系统中平均的单块读取事件不应该超过10ms.由于具有大量高速缓存,因此预计在SAN中具有4MS到8MS的 平均等待时间.平均等待事件越长,执行单块读取的代价就越高,整个进程响应时间也会越长. 单块读超过10毫秒才有问题…
问题描述: 一个session已经ACTIVE20多小时,等待事件SQL*Net more data from client 有一人session,从昨天上午11点多登陆(v$session.login_time),到现在一直是ACTIVE,而且从v$active_session_history只有一个sql_id,是一个merge操作,等待事件是SQL*Net more data from client.网络没有问题啊,现在访问的通. 如果是SQL执行的慢,不应该是这个等待事件吧. 解决思路:…
等待事件介绍 关于等待事件RESOURCE_SEMAPHORE_QUERY_COMPILE,官方的介绍如下: Occurs when the number of concurrent query compilations reaches a throttling limit. High waits and wait times may indicate excessive compilations, recompiles, or uncachable plans. 该等待事件在并发查询编译的数量…