博客
关于我
SQL*Net break/reset to client (%)等待事件
阅读量:440 次
发布时间:2019-03-06

本文共 1814 字,大约阅读时间需要 6 分钟。

某客户通过数据库监控发现Oracle数据库在特定时间段内出现异常指标。为了定位问题,我们可以通过以下步骤进行诊断和分析。

首先,使用以下SQL查询可以帮助我们识别在指定时间段内出现次数较多的关键事件:

SELECT instance_number, event, COUNT(*) AS event_count
FROM dba_hist_active_sess_history
WHERE SAMPLE_TIME BETWEEN TO_DATE('2020-02-25 06', 'yyyy-mm-dd hh24')
AND TO_DATE('2020-02-25 09', 'yyyy-mm-dd hh24')
GROUP BY instance_number, event
ORDER BY event_count DESC;

通过上述查询,我们可以快速定位到在指定时间段内出现频率较高的数据库事件。结果显示,SQL*Net break/reset to client事件的发生次数显著增加。

进一步查询该等待事件的具体说明,可以参考Oracle官方文档。该事件通常与客户端和数据库服务器之间的通信问题有关,可能是由于应用程序执行的SQL语句导致的。具体来说,该事件可能由以下原因引发:

  • 应用程序尝试从已经关闭的游标中进行SELECT操作。
  • 应用程序尝试对一个不存在的表或视图进行查询。
  • 应用程序尝试插入已经存在的唯一索引字段。
  • 应用程序提交了语法错误的查询。
  • 通过查看v$session_wait视图中的参数p2,可以进一步确认具体是reset还是break操作。p2值为0时表示发送了reset消息,值不为0时表示发送了break消息。

    为了更详细地分析问题,我们可以结合以下查询来查找相关的用户和SQL信息:

    SELECT event, USER_ID, SQL_ID, COUNT(*) AS sql_count
    FROM dba_hist_active_sess_history
    WHERE SAMPLE_TIME BETWEEN TO_DATE('2020-02-25 06', 'yyyy-mm-dd hh24')
    AND TO_DATE('2020-02-25 09', 'yyyy-mm-dd hh24')
    AND instance_number = 1
    AND event = 'SQL*Net break/reset to client'
    GROUP BY USER_ID, event, SQL_ID
    ORDER BY sql_count DESC;

    通过上述查询,我们可以了解哪些用户在执行频繁导致等待事件的SQL以及对应的SQL_ID。由于数据库没有找到相关的SQL文本,我们可以通过监控工具查找相关的SQL_ID。经过查找发现,这些SQL主要是对视图的查询。

    为了验证问题的具体原因,我们可以进行以下测试:

    SELECT event, total_waits
    FROM v$session_event
    WHERE event LIKE '%reset%'
    AND sid = (SELECT sid FROM v$mystat WHERE rownum = 1);

    测试结果显示,当执行不存在的表或视图时,会触发SQL*Net break/reset to client等待事件。例如:

    SELECT * FROM non_existent;

    执行上述查询会返回ORA-00942错误,表或视图不存在。此时,相关等待事件的发生次数会显著增加。

    同样地,当对不存在的表执行CREATE TABLECREATE VIEW操作时,也会触发类似的等待事件。例如:

    CREATE TABLE a AS SELECT * FROM employees;

    如果employees表不存在,会报ORA-00942错误,同时相关等待事件的发生次数会增加。

    通过以上分析,我们可以确认问题的根源是应用程序在执行查询时,尝试访问不存在的表或视图。由于开发团队已对问题进行了处理,且未报告进一步影响,问题已得到解决。

    如果需要进一步验证,可以参考以下官方文档以获取更详细的解释和处理建议:

    https://tanelpoder.com/2008/04/10/sqlnet-breakreset-to-client/

    转载地址:http://dvlyz.baihongyu.com/

    你可能感兴趣的文章
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用配置项---npm工作笔记004
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    npm编译报错You may need an additional loader to handle the result of these loaders
    查看>>
    npm设置淘宝镜像、升级等
    查看>>
    npm设置源地址,npm官方地址
    查看>>
    npm设置镜像如淘宝:http://npm.taobao.org/
    查看>>
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>
    npm错误 gyp错误 vs版本不对 msvs_version不兼容
    查看>>
    npm错误Error: Cannot find module ‘postcss-loader‘
    查看>>
    npm,yarn,cnpm 的区别
    查看>>
    NPOI
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>