mysql中10049是什么错误_【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例[通俗易懂]

mysql中10049是什么错误_【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例[通俗易懂]【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例时间:2016-11-0513:54来源:Oracle研究中心作者:HTZ点击:次天萃荷净Oracle研究中心学习笔记:分享一篇关于Oracle数据库关于SQL解析的详细文档,该文档详细介绍使用10049event事件来分析SQL语句的解析笔记。1,数据库版本SQL>select*fromv$ve…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

学习笔记】Oracle数据库10049用于分析SQL解析笔记案例

时间:2016-11-05 13:54   来源:Oracle研究中心   作者:HTZ   点击:

天萃荷净

Oracle研究中心学习笔记:分享一篇关于Oracle数据库关于SQL解析的详细文档,该文档详细介绍使用10049 event事件来分析SQL语句的解析笔记。

1,数据库版本

SQL> select * from v$version;

BANNER

—————————————————————-

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bi

PL/SQL Release 10.2.0.1.0 – Production

CORE 10.2.0.1.0 Production

TNS for Linux: Version 10.2.0.1.0 – Production

NLSRTL Version 10.2.0.1.0 – Production

2,查询SQL的HASH_VALUE

SQL> @find_sql.sql

Enter value for sql_text: from scott.emp

Enter value for sql_id:

SQL_ID CHILD HASH_VALUE PLAN_HASH EXECS ETIME AVG_ETIME USERNAME

————- —— ———- ———- ———- ————- ————- ————-

SQLTEXT

————————————————————————————————

ggqns3c1jz86c 0 52404428 3956160932 1 .17 .17 SYS

select * from scott.emp

3,配置event

关于10049每一个level的意思与配置方法见:配置10049

SQL> @10to16.sql

Enter value for number10: 52404428

TO_CHAR(‘52404428’,’XXXXXXXXXXXXXXXXXXXXXXXXX

———————————————

31fa0cc

2000+0010+0020

a0cc2030

SQL> @16to10.sql

Enter value for number16: a0cc2030

NUMBER10

—————————-

2697732144

SQL> @parameter_hide.sql

+————————————————————————+

| display hide parameter value |

+————————————————————————+

Enter Search Parameter (i.e. max|all) : kks

PARAMETER SESSION_VALUE INSTANCE_VALUE DESCRIPTION

—————————————- ——————– ——————– ————————————————————

_kks_use_mutex_pin FALSE FALSE Turning on this will make KKS use mutex for cursor pins.

SQL> oradebug setmypid

Statement processed.

SQL> oradebug event 10049 trace name context forever,level 2697732144;

Statement processed.

4,运行sql

SQL> startup force pfile=’/tmp/123.ora’;

ORACLE instance started.

Total System Global Area 524288000 bytes

Fixed Size 2022080 bytes

Variable Size 218105152 bytes

Oracle oracleplus.netDatabase Buffers 301989888 bytes

Redo Buffers 2170880 bytes

Database mounted.

Database opened.

SQL> oradebug setmypid

Statement processed.

SQL> oradebug event 10049 trace name context forever,level 2697732144;

Statement processed.

SQL> select * from scott.emp;

SQL> select * from scott.emp;

SQL> select * from scott.emp;

SQL> select * from scott.emp;

SQL> oradebug tracefile_name;

/oracle/app/oracle/admin/orcl1021/udump/orcl1021_ora_7566.trc

*** 2014-05-04 13:26:36.128

/******************************************************************************

KGLTRCLCK kglget hd = 0x0x4408bb808 KGL Lock addr = 0x0x3c1932c00 mode = N

KGLTRCPIN kglpin hd = 0x0x4408bb808 KGL Pin addr = 0x0x3c190e4f8 mode = X

KGLTRCPIN kglpndl hd = 0x0x4408bb808 KGL Pin addr = 0x0x3c190e4f8 mode = X

KGLTRCLCK kglget hd = 0x0x4408bb5e0 KGL Lock addr = 0x0x3c1909030 mode = N

KGLTRCPIN kglpin hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c190e938 mode = X

KGLTRCPIN kglpndl hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c190e938 mode = S

KGLTRCLCK kgllkdl hd = 0x0x4408bb5e0 KGL Lock addr = 0x0x3c1909030 mode = N

KGLTRCLCK kgllkdl hd = 0x0x4408bb808 KGL Lock addr = 0x0x3c1932c00 mode = N

第一次硬分析,这个我们可以看到在父游标上面先kglget NULL的锁,再获取PIN的锁,随后再

是子游标的lock/pin,最后释放父游标的NULL locK锁

*******************************************************************************/

/******************************************************************************

*** 2014-05-04 13:26:48.940

KGLTRCLCK kglget hd = 0x0x4408bb808 KGL Lock addr = 0x0x3c1923f68 mode = N

KGLTRCLCK kglget hd = 0x0x4408bb5e0 KGL Lock addr = 0x0x3c18fef90 mode = N

KGLTRCPIN kglpin hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c193c840 mode = S

KGLTRCPIN kglpndl hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c193c840 mode = S

KGLTRCLCK kgllkdl hd = 0x0x4408bb5e0 KGL Lock addr = 0x0x3c18fef90 mode = N

KGLTRCLCK kgllkdl hd = 0x0x4408bb808 KGL Lock addr = 0x0x3c1923f68 mode = N

这里是软分析,也是第二次分析,这里可以看到整个过程没有X的锁

*******************************************************************************/

KGLTRCLCK kglget hd = 0x0x4408bb808 KGL Lock addr = 0x0x3c1932e28 mode = N

KGLTRCLCK kglget hd = 0x0x4408bb5e0 KGL Lock addr = 0x0x3c1932ee0 mode = N

KGLTRCPIN kglpin hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c190e3e8 mode = S

KGLTRCPIN kglpndl hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c190e3e8 mode = S

KGLTRCPIN kglpin hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c190e938 mode = S

KGLTRCPIN kglpndl hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c190e938 mode = S

再执行一次

SQL> select * from scott.emp;

只增加了下面的2行

*** 2014-05-04 13:28:08.866

下面是多次运行后,软软分析的trace,这里我们可以只在子游标上面获取pin的锁

KGLTRCPIN kglpin hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c18fff58 mode = S

KGLTRCPIN kglpndl hd = 0x0x4408bb5e0 KGL Pin addr = 0x0x3c18fff58 mode = S

SQL> @find_sql.sql

Enter value for sql_text: from scott.emp

Enter value for sql_id:

SQL_ID CHILD HASH_VALUE PLAN_HASH EXECS ETIME AVG_ETIME USERNAME

————- —— ———- ———- ———- ————- ————- ————-

SQLTEXT

———-

ggqns3c1jz86c 0 52404428 3956160932 5 .01 .00 SYS

select * from scott.emp

SQL> select kglhdadr,kglhdpar,kglnaobj from x$kglob where kglhdadr in (‘00000004408BB5E0′,’00000004408BB808’);

KGLHDADR KGLHDPAR KGLNAOBJ

—————- —————- ———————————————————————-

00000004408BB5E0 00000004408BB808 select * from scott.emp

00000004408BB808 00000004408BB808 select * from scott.emp

本文固定链接: http://www.htz.pw/2015/03/28/10049%e7%94%a8%e4%ba%8e%e5%88%86%e6%9e%90sql%e8%a7%a3%e6%9e%90.html | 认真就输

————————————–ORACLE-DBA—————————————-

最权威、专业的Oracle案例资源汇总之【学习笔记】Oracle数据库10049用于分析SQL解析笔记案例

9bd101509341196819122f36086c9a60.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187131.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浅谈Mock测试

    浅谈Mock测试一、Mock测试的定义 Mock就是在测试过程中,对于一些不容易构造/获取的对象,创建一个Mock对象来模拟对象的行为 二、Mock测试的作用 1、为什么要做Mock: 在对代码进行单元测试过程中,经常会有以下的情况发生: classA依赖classB和classC classD依赖classC和classE classB依赖…..

    2022年6月20日
    36
  • Spark和Hadoop的区别和比较[通俗易懂]

    Spark和Hadoop的区别和比较[通俗易懂]目录一、两者的各方面比较二、Spark相对Hadoop的优越性三、三大分布式计算系统Spark,是分布式计算平台,是一个用scala语言编写的计算框架,基于内存的快速、通用、可扩展的大数据分析引擎Hadoop,是分布式管理、存储、计算的生态系统;包括HDFS(存储)、MapReduce(计算)、Yarn(资源调度)一、实现原理的比较Hadoop和Spark都是并…

    2025年7月6日
    0
  • Python 股票历史数据的获取

    Python 股票历史数据的获取本文主要讨论的是pytho免费股票数据的获取及处理。国内提供股票数据的接口如sinajs,money.163.com,yahoo,它们提供的API接口不同,每家提供的数据大同小异,可以选择一家的数据来处理。

    2022年6月24日
    40
  • 如何关闭占用的端口程序[通俗易懂]

    如何关闭占用的端口程序[通俗易懂]1、确认被占用的端口号,如:80、443等端口2、查看占用上述端口的程序id;步骤:a、快捷键win+R或者点击运行,输入cmd,出现cmd命令框;b、输入netstat-nao|findstr443,查看第二列ip后面数字为443的程序,最后一列是PID(程序id);——即查看含有443字符串的程序;3、关闭进程a、记录端口号为443的PID值,打开任

    2022年7月20日
    80
  • php轻博客社区视频教程,轻博客主题 – SEO极致优化的ZBLOG轻博客主题

    php轻博客社区视频教程,轻博客主题 – SEO极致优化的ZBLOG轻博客主题zblog自适应轻博客主题,简洁、轻巧、极致优化~QQ群:457320274(问题反馈以及其他链接交换等)交流社区:https://www.bxiu.net/(有问题可以求助交流)更新记录:2021.02.22v2.8更新内容:1、新增分类自定义标题;(默认分类标题是分类名-副标题,输入自定义后则显示自定义标题,详情看分类编辑页)。2021.02.20v2.7更新内容:1、调整列…

    2022年7月21日
    19
  • pycharm全局搜索ctrl+shift+f(win10快捷键冲突)

    pycharm全局搜索ctrl+shift+f(win10快捷键冲突)pycharm全局搜索ctrl+shift+f按了后没有任何效果,是因为跟win10的输入法冲突,只需要设置中添加ctrl+shift+g

    2022年5月31日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号