SQL*Net break/reset to client等待事件

简介:
一般情况下无法从动态视图(v$session/v$session_wait)看到这个等待事件,因为它十分短暂。其本质从字面意思上来解释的话,是一种网络等待(network issue); 举例而言,如果运行的代码中包含某种可能的错误,且在调用中触发了的话,服务器端本地的服务进程有义务对远程客户端告知该信息,这个告知的过程中服务进程就处于SQL*Net break/reset to client等待中,直到客户端收到问题信息为止。与一般意义上的Sever-client模式一样,使用dblink时也可能出现该种等待事件。 下面我们来尝试演示该种等待事件:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SQL>   create  table  tv (t1  int  unique );
 
Table  created.
 
SQL>  insert  into  tv  values (1);
 
1 row created.
 
SQL>  commit ;
 
Commit  complete.
 
SQL> oradebug setmypid;
Statement processed.
SQL>  oradebug event 10046 trace  name  context forever, level  8;
Statement processed.
SQL>  insert  into  tv  values (1);
insert  into  tv  values (1)
*
ERROR  at  line 1:
ORA-00001:  unique  constraint  (SYS.SYS_C009343) violated
 
SQL>  oradebug event 10046 trace  name  context  off ;
Statement processed.
SQL>  select  event, total_waits  from  v$session_event  where  event  like  '%break%'  and  sid =( select  distinct  sid  from  v$mystat);
 
EVENT                                                            TOTAL_WAITS
---------------------------------------------------------------- -----------
SQL*Net break/reset  to  client                                              2
可以看到出现了2次SQL*Net break/reset to client ,进一步分析trace文件可以发现以下记录:
?
1
2
3
4
5
6
EXEC  #2:c=8000,e=9020,p=0,cr=10,cu=9,mis=0,r=0,dep=0,og=1,plh=0,tim=1279117896316991
ERROR #2:err=1 tim=1279117896317039
STAT #2 id=1 cnt=0 pid=0 pos=1 obj=0 op= 'LOAD TABLE CONVENTIONAL  (cr=0 pr=0 pw=0 time=0 us)'
WAIT #2: nam= 'SQL*Net break/reset to client'  ela= 33 driver id=1413697536 break?=1 p3=0 obj#=-1 tim=1279117896317323
WAIT #2: nam= 'SQL*Net break/reset to client'  ela= 521 driver id=1413697536 break?=0 p3=0 obj#=-1 tim=1279117896317915
WAIT #2: nam= 'SQL*Net message to client'  ela= 5 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1279117896317964

2次SQL*Net break/reset to client分别为33us和521us; 设计不良的应用程序或者程序中存在较多未安置的exception都可能导致SQL*Net break/reset to client等待事件。



本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277491

相关文章
|
6月前
|
SQL 运维 关系型数据库
在OceanBase数据库中,你可以通过以下几个途径来查看慢SQL和等待事件
在OceanBase数据库中,你可以通过以下几个途径来查看慢SQL和等待事件
207 1
|
3月前
|
SQL 监控 关系型数据库
解密SQL性能异常事件及阿里云数据库的性能调优实践
作为开发者想必都知道数据库是现代应用的核心组件之一,而且在当今互联网时代之下,SQL查询的性能直接影响系统的整体性能,它的性能对于系统的稳定性和响应速度至关重要。那么本文就来讨论一下SQL性能异常的排查和优化方法,包括我个人印象深刻的SQL性能异常事件,以及分享一下使用阿里云数据库产品/工具进行SQL性能调优的经验和心得体会。
84 1
解密SQL性能异常事件及阿里云数据库的性能调优实践
|
6月前
|
SQL 关系型数据库 MySQL
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
【SQL异常】启动MySQL时发生系统错误的解决方法(net start mysql 发生系统错误 5。 拒绝访问)
125 1
|
8月前
|
SQL 消息中间件 关系型数据库
Flink SQL Client综合实战
使用工具Flink SQL Client完成各种实时处理的操作
186 0
Flink SQL Client综合实战
|
8月前
|
SQL NoSQL Java
Flink SQL Client初探
体验Flink SQL Client
154 1
Flink SQL Client初探
|
SQL Oracle 关系型数据库
Oracle 等待事件研究:SQL*Net break/reset to client
SQL*Net break/reset to client事件是一个容易被误解的事件,这个事件看起来和网络有关,但实际上大多数情况下这个事件与网络无关。
372 0
Oracle 等待事件研究:SQL*Net break/reset to client
|
SQL XML 存储
SQL Server通过扩展事件捕获DDL
SQL Server通过扩展事件捕获DDL
SQL Server通过扩展事件捕获DDL
|
SQL XML 关系型数据库
SQL Server 通过扩展事件捕获慢SQL
SQL Server 通过扩展事件捕获慢SQL
SQL Server 通过扩展事件捕获慢SQL