oracle等待事件12——网络上的等待事件

简介: 网络上的相关等待时间有如下几种: --SQL*NET message from / to client --SQL*NET more data from /to client --SQL*NET message from /to dblink --SQL*NET more data from / to dblink 这些事件大部分视为Idle(空闲)事件,所以分析性能问题时一般不予考虑。

网络上的相关等待时间有如下几种:

--SQL*NET message from / to client

--SQL*NET more data from /to client

--SQL*NET message from /to dblink

--SQL*NET more data from / to dblink

这些事件大部分视为Idle(空闲)事件,所以分析性能问题时一般不予考虑。但某些情况下,这些事件对于分析性能下降原因可提供决定性线索。这些事件与性能问题相关的情况如下:

1)网络速度缓慢时

如果等待上述事件的时间异常地高,就应该怀疑网络速度。客户端和DBMS之间的网络通信若是存在问题,就对SQL*NET message from /to client、SQL*NET more data from/to client 事件的等待可能增加。这时,应该和系统管理员沟通后,需要对网络层进行检测工作。

如果在RAC环境下,与GC(global cache) 相关的平均等待时间过长,同样有必要检测网络性能。RAC上的缓存同步基本上是通过网络实现的,所以网络结构存在问题时,这个将直接影响性能。不仅是网络速度,还要检查数据交换设备是否设定恰当。

2)SQL执行次数(execute count)异常的过高时。

执行次数(execute count)过多时,客户端和DBMS间的网络通信频繁地发生,因此网络相关的等待时间可能会延长。这时,oracle需要等待从客户端发送的响应,所以等待SQL*NET message from  client 或 SQL*NET more data from client 事件。特别是整个等待时间中,如果SQL*NET more data from client 占据着相当比重的等待时间,就应该怀疑过多执行次数引起的系统性能下降。

解释上述测试结果时,需要留意如下几点。第一,V$SYSSTAT视图或V$SESSTAT视图的execute count统计值不是从客户端出发,而是从DBMS角度上出发计算的。即,也包含了通过recursive SQL执行的次数,因此递归调用(recursive call)较多的情况下,有时execute count值不能反映客户端上执行次数。case1 和 case2的execute count值是227(227约等于122的两倍),实际上出现相同的值也是因为这个理由。第二,SQL*plus上,每次执行SQL语句都执行DBMS_OUTPUT.GET_LINES.所以execute count值显示为执行次数的两倍。

如果想从客户端角度执行次数,就应该同时考虑 parse count(total)统计值和 execute count统计值,以上的此时虽然execute count统计值相同,但在case2中pase count(total)统计值非常小。即,可以推测case1是每次重复执行SQL语句的情况,case2是将相同量的工作一次性在PL/SQL上处理的情况。所以execute count 统计值和parase count(total)统计值如果相似的增长。则可以判断正在采用一次分析后执行一次的典型低效的处理方式。客户端角度上执行次数多时,因网络通信伴随的等待时间,客户所感觉到的响应时间可能大幅下降。这时,尽量利用PL/SQL排毒处理(array peocessing)来减少DBMS调用。

3)应用程序的实现方式存在问题时

如果应用程序的实现方式上存在问题,与DBMS维持着连接状态,不必要的等待时间较多,可能会使SQL*NET message from client 等待时间会较长。用户角度上说,用户很可能认为应用程序的响应速度缓慢。

例如:应用程序从oracle拿来一个数据后执行复杂的计算(需要花费很长时间),然后再从oracle拿来一个数据后再执行另外的工作。在oracle服务器端根本没有任何性能问题,只是被读取了两次数据。但是客户端就会感觉系统很慢,两次读取间隔太长。所以,低效的应用程序工作方式极有可能就是其原因。

相关文章
|
3月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
49 0
|
3月前
|
自然语言处理 算法
【论文精读】COLING 2022 - CLIO: 用于文档级事件抽取的角色交互多事件头注意力网络
【论文精读】COLING 2022 - CLIO: 用于文档级事件抽取的角色交互多事件头注意力网络
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【论文精读】COLING 2022 -带有对偶关系图注意力网络的事件检测模型
【论文精读】COLING 2022 -带有对偶关系图注意力网络的事件检测模型
|
7月前
|
消息中间件 存储 负载均衡
对于钉钉OA事件订阅出现的网络波动导致的通知丢失问题
对于钉钉OA事件订阅出现的网络波动导致的通知丢失问题
86 1
|
10月前
|
安全 Java 数据挖掘
《网络安全0-100》安全事件案例
《网络安全0-100》安全事件案例
143 0
|
10月前
|
Oracle 关系型数据库 Linux
【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-lsb-oracle
在密码学中,预言机被定义为某种“黑匣子”机制,它将泄漏有关输入上的加密操作的一些信息。对于特定输入,预言机的输出始终相同。因此,预言机可用于逐个了解明文,包括完整的明文恢复。
89 0
 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-lsb-oracle
|
10月前
|
监控 安全 网络安全
网络安全威胁分析:入侵检测和安全事件响应
在当今数字化的世界中,网络安全威胁已经成为企业和组织面临的重要挑战。恶意攻击者不断寻找突破网络安全防御的漏洞,这使得入侵检测和安全事件响应变得至关重要。本文将介绍网络安全威胁分析的基本概念,以及入侵检测和安全事件响应的关键策略和工具。
354 0
|
11月前
|
Oracle 关系型数据库 数据库
Oracle-等待事件解读
Oracle-等待事件解读
44 0
|
12月前
|
机器学习/深度学习 数据采集 搜索推荐
【数据挖掘实战】——家用电器用户行为分析及事件识别(BP神经网络)
项目地址:Datamining_project: 数据挖掘实战项目代码
672 0
|
SQL Oracle 关系型数据库
Oracle 等待事件研究:SQL*Net break/reset to client
SQL*Net break/reset to client事件是一个容易被误解的事件,这个事件看起来和网络有关,但实际上大多数情况下这个事件与网络无关。
388 0
Oracle 等待事件研究:SQL*Net break/reset to client

热门文章

最新文章

推荐镜像

更多