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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 我的第一个jsp程序-实现注册登录留言功能

    我的第一个jsp程序-实现注册登录留言功能

    2021年9月11日
    51
  • Java和c++哪个就业前景好

    Java和c++哪个就业前景好二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有哪些方法?HashMap如何实现的?HashMap和ConcurrentHashMap区别,ConcurrentHashMap线程安全hashtable吗,ConcurrentHashMap如何保证线程安全?HashMap和HashTable区别,HashTable线程安全吗?进程间通信有哪几种方式JVM分为哪些区,每一个区干吗的?JVM如

    2022年7月7日
    27
  • jps 命令_jps只有一个jps进程

    jps 命令_jps只有一个jps进程简介jps(全称:JavaVirtualMachineProcessStatusTool)是java提供的一个用来显示当前所有java进程的pid的命令。unix系统里也有一个ps命令,用来显示当前系统的进程id及其基本情况。配置环境变量jsp命令的位置在JAVA_HOME/bin/jps下,如果使用sudoaptgetinstall、dpkg-i、yuminstall命令进行安装,会自动配置环境变量。如果手动解压,可以编辑~/.bashrc

    2022年9月19日
    3
  • C/C++之makefile写法

    C/C++之makefile写法参考:https://www.cnblogs.com/owlman/p/5514724.html什么是makefileMakefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成…

    2022年5月1日
    43
  • Linux Redhat 7.6 操作系统 下载安装详解「建议收藏」

    Linux Redhat 7.6 操作系统 下载安装详解「建议收藏」redhat系统镜像分享[百度网盘分享]链接:https://pan.baidu.com/s/1U0SUh7qmLGfpLN5Fqb4Wgg提取码:bpwdredhat7.6版本安装详解

    2022年8月5日
    20
  • Alex 的 Hadoop 菜鸟教程: 第9课 zookeeper 介绍和使用

    Alex 的 Hadoop 菜鸟教程: 第9课 zookeeper 介绍和使用看了之前的教程,会发现多处出现zookeeper,比如hadoop的autofailover得用zookeeper,Hbase的RegionServer也得用zookeeper。其实不止hadoop,包括现在小有名气的Storm用的也是zookeeper。那么zookeeper究竟是做什么用的?

    2022年5月31日
    37

发表回复

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

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