oracle 10046事件 深入分析Oracle数据库的启动初始化过程
mhr18 2024-09-26 14:02 20 浏览 0 评论
# 产生trace文件的全部的步骤
```sql
shutdown immediate
startup nomount
oradebug setmypid
oradebug tracefile_name -- /oracle/app/oracle/diag/rdbms/xxoodb/xxoodb/trace/xxoodb_ora_18866.trc
alter session set events '10046 trace name context forever,level 12';
alter database mount; -- 能mount, 代表控制文件没有问题
alter database open; -- 能open, 代表数据文件 重做日志文件没有问题
alter session set events '10046 trace name context off';
oradebug close_trace;
```
# trace内容 部分记录
## 1.PARSING IN CURSOR #140560609199296是什么意思
```sql
在 Oracle 的跟踪文件(.trc 文件)中,"END OF STMT" 行表示 SQL 语句的执行已经结束。
当 Oracle 数据库执行一个 SQL 语句时,它会在跟踪文件中生成一系列的事件和统计信息,以记录执行过程中的各种细节。"END OF STMT" 是这些信息的结尾标识,表示当前 SQL 语句已经完成执行。
在紧随 "END OF STMT" 行之后,你可能会看到与 SQL 语句执行相关的其他信息,如 CPU 使用、I/O 操作、等待事件、执行计划等等,这些信息可以帮助你分析 SQL 的性能和执行情况。
需要注意的是,“END OF STMT” 行的出现并不意味着 SQL 的执行一定是成功的。它只表示 SQL 的执行已经到达了结束点,但实际的执行结果可能需要进一步检查。如果在跟踪文件中出现了错误信息或异常情况,通常会在 "END OF STMT" 之前打印。
总之,"END OF STMT" 行标志着 SQL 语句的执行结束,并且在跟踪文件中提供了有关 SQL 执行过程和性能的额外信息。
```
## 2.END OF STMT是什么意思
```sql
在 Oracle 的跟踪文件(.trc 文件)中,"PARSING IN CURSOR" 行提供了正在解析的 SQL 语句的有关信息,其中包括以下各个字段的含义:
#140560609199296:游标的唯一标识符,用于标识正在解析的特定游标。
len=499:SQL 语句的长度,以字符为单位。
dep=1:语句的深度,表示语句是第几层次进行的解析。通常情况下,该值为 1,表示这是最外层次的语句解析。
uid=0:用户 ID,表示执行 SQL 语句的用户 ID。
oct=3:优化级别,表示 SQL 语句的优化级别。其中,0 表示基于规则的优化,1 表示基于成本的优化,2 表示基于统计信息的优化,3 表示基于自动跟踪收集的成本信息的优化。
lid=0:语言环境 ID,表示使用的语言环境 ID。
tim=1694229904793009:时间戳,表示 SQL 语句解析开始的时间(单位为毫秒)。
hv=1830981823:哈希值,指示 SQL 语句的哈希值。
ad='1267ae1a8':地址,表示 SQL 语句在共享 SQL 区存储的地址。
sqlid='6wmch15qk545z':SQL ID,表示 SQL 语句的唯一标识符。
这些信息可以帮助你更好地理解 SQL 语句在 Oracle 数据库中的解析过程和运行情况。例如,你可以使用它们来跟踪特定的游标、查看 SQL 语句的长度、了解优化级别以及找到 SQL 语句的地址和唯一标识符等。
```
## 3.BINDS #140560609172424: 是什么意思
```sql
在 Oracle 的跟踪文件(.trc 文件)中,"BINDS" 行提供了正在绑定的变量的相关信息。这些变量通常是在 SQL 语句中使用的占位符,通过变量绑定机制将其与实际的数值进行绑定。
以下是 "BINDS" 行的示例:
BINDS #140560609172424:
Bind#0
oacdty=01 mxl=32(06) mxlc=00 mal=00 scl=00 pre=00
oacflg=08 fl2=0001 frm=01 csi=123 siz=32 off=0
kxsbbbfp=2af7d4823d10 bln=32 avl=06 flg=09
value="John"
其中,“BINDS #140560609172424” 行指定了正在进行绑定操作的游标的唯一标识符。
以下是一些字段的意义:
Bind#0:绑定变量的编号,从 0 开始递增。
oacdty=01:数据类型代码,表示绑定变量的数据类型。
mxl=32(06):最大长度,表示变量的最大长度(字节),括号中的 06 表示 Unicode 字符的长度。
oacflg=08:标志位,表示绑定选项的标志位。
value="John":绑定变量的值。
这些信息可以帮助你了解正在绑定的变量的类型、长度和值。通过查看绑定变量的信息,你可以更好地理解 SQL 语句的执行过程,并进行性能分析和故障排查。
```
## 4.EXEC #140560603068344:c=21,e=20,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,plh=2874733959,tim=1694229904813780 是什么意思
```sql
在 Oracle 的跟踪文件(.trc 文件)中,"EXEC" 行提供了正在执行的 SQL 语句的相关统计信息。以下是该行中各个字段的含义:
#140560603068344:正在执行的 SQL 语句的游标的唯一标识符。
c=21:CPU 时间(单位为 centiseconds),表示此次执行消耗的 CPU 时间。
e=20:等待时间(单位为 centiseconds),表示此次执行的等待时间。
p=0:物理读取次数(单位为 blocks),表示此次执行进行的物理读取次数。
cr=0:逻辑读取次数(单位为 blocks),表示此次执行进行的逻辑读取次数。
cu=0:更新次数,表示此次执行进行的数据修改次数。
mis=0:缺失次数,表示此次执行查找缓存时发生的缺失次数。
r=0:行数,表示此次执行返回的行数。
dep=1:语句的深度,表示语句是第几层次进行的执行。通常情况下,该值为 1,表示这是最外层次的语句执行。
og=4:优化级别,表示 SQL 语句的优化级别。其中,4 表示基于自动跟踪收集的成本信息的优化。
plh=2874733959:保留信息,表示此次执行的保留信息标识符。
tim=1694229904813780:时间戳,表示 SQL 语句执行开始的时间(单位为毫秒)。
这些信息可以帮助你了解 SQL 语句的执行情况,包括 CPU 和等待时间、物理和逻辑读取次数、更新次数、缺失次数以及返回的行数等。通过查看这些统计信息,你可以进行性能分析和优化,定位潜在的性能问题,并做出相应的调整。
```
## 5.FETCH #140560603068344:c=3,e=2,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=4,plh=2874733959,tim=1694229904813787 呢
```sql
在 Oracle 的跟踪文件(.trc 文件)中,"FETCH" 行提供了执行 SQL 查询并获取结果的相关统计信息。以下是该行中各个字段的含义:
#140560603068344:执行 FETCH 操作的游标的唯一标识符,与 EXEC 行中的标识符相同,表示该 FETCH 操作对应的 SQL 语句。
c=3:CPU 时间(单位为 centiseconds),表示这次 FETCH 操作消耗的 CPU 时间。
e=2:等待时间(单位为 centiseconds),表示这次 FETCH 操作的等待时间。
p=0:物理读取次数(单位为 blocks),表示这次 FETCH 操作进行的物理读取次数。
cr=2:逻辑读取次数(单位为 blocks),表示这次 FETCH 操作进行的逻辑读取次数。
cu=0:更新次数,表示这次 FETCH 操作进行的数据修改次数。
mis=0:缺失次数,表示这次 FETCH 操作在查找缓存时发生的缺失次数。
r=0:行数,表示这次 FETCH 操作返回的行数。
dep=1:语句的深度,表示语句是第几层次进行的 FETCH 操作。
og=4:优化级别,表示 SQL 语句的优化级别。
plh=2874733959:保留信息,表示此次 FETCH 操作的保留信息标识符。
tim=1694229904813787:时间戳,表示 FETCH 操作开始的时间(单位为毫秒)。
这些统计信息可以帮助你了解 FETCH 操作的性能情况,包括 CPU 和等待时间、物理和逻辑读取次数、更新次数以及返回的行数等。通过查看这些信息,你可以进行性能分析和优化,判断是否存在潜在的性能问题,并做出相应的调整。
```
## 6.CLOSE #140560603068344:c=0,e=0,dep=1,type=3,tim=1694229904813794 呢
```sql
在 Oracle 的跟踪文件(.trc 文件)中,"CLOSE" 行提供了关闭游标的相关统计信息。以下是该行中各个字段的含义:
#140560603068344:要关闭的游标的唯一标识符,与 EXEC 和 FETCH 行中的标识符相同,表示该 CLOSE 操作对应的 SQL 语句或 FETCH 操作。
c=0:CPU 时间(单位为 centiseconds),表示该 CLOSE 操作消耗的 CPU 时间。
e=0:等待时间(单位为 centiseconds),表示该 CLOSE 操作的等待时间。
dep=1:语句的深度,表示语句是第几层次进行的 CLOSE 操作。
type=3:操作类型,表示该 CLOSE 操作的类型。值为 3 表示关闭游标的操作。
tim=1694229904813794:时间戳,表示 CLOSE 操作开始的时间(单位为毫秒)。
CLOSE 操作用于显式地关闭已打开的游标,从而释放与游标相关的资源。通过查看 CLOSE 行中的统计信息,你可以了解 CLOSE 操作的性能情况,包括 CPU 和等待时间等。这些信息可以帮助你分析和优化代码,确保合理地使用游标并及时释放资源,以提高系统性能和资源利用率。
```
相关推荐
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
-
IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
-
IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
-
你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
-
今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
-
现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
-
系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...
- 开源“Windows”ReactOS更新:支持全屏应用
-
IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
-
英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...
- 47道网络工程师常见面试题,看看有没有你不会的!
-
你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
-
e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...
- 36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!
-
前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 手把手教你在嵌入式设备中使用SQLite3
-
摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...
- JAVA语言基础(java语言基础知识)
-
一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...
- 再见 Navicat!一款开源的 Web 数据库管理工具!
-
大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
- 开源“Windows”ReactOS更新:支持全屏应用
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
- 47道网络工程师常见面试题,看看有没有你不会的!
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)