当前位置: 首页 > news >正文

59-Oracle 10046事件-知识准备

上一篇说到了autotrace,SQL调试时候的获取性能和参数数据,直接用上trace,还有个更全能的工具10046。是不是很多小伙伴会对这么个数字,觉得起名很奇怪,数字起名任性。“10046”本质是Oracle内核事件的随机性技术编号,类似于软件中的错误代码,Oracle开发团队设计,数字本身并无特殊含义,而是用于在代码层唯一标识特定功能模块或诊断事件。

一、Oracle内部事件编码规则​

Oracle使用5位数字作为内部事件的标识符(如10046、10053)。
这些数字是开发团队预定义的常量,用于在数据库内核中触发特定诊断行为。例如:
  1. ​10046​:SQL执行全链路跟踪
  2. ​10053​:优化器成本计算逻辑跟踪
  3. ​10235​:数据块损坏检测事件
此类编号无公开的命名规律,通常与事件引入的版本或功能模块相关。
​历史沿袭性​
早期版本(如Oracle 7/8)中,SQL_TRACE是基础跟踪功能,而10046作为其增强版被引入,数字编号可能延续了当时的事件序列(如10000~10999区间)

二、功能特点和技术原理

Oracle数据库的10046事件是一种 深层诊断工具,被广泛誉为“增强版SQL_TRACE”。它通过激活Oracle内核的跟踪机制,全面记录SQL和PL/SQL语句执行过程中的 关键性能数据。与标准SQL_TRACE相比,10046事件提供了更细粒度的信息捕获能力,能够揭示SQL执行的完整生命周期,包括解析(Parse)、执行(Execute)和获取(Fetch)三个核心阶段。在性能优化领域,10046事件的价值无可替代,它能够帮助DBA精准定位SQL性能瓶颈、分析系统资源消耗模式,并深入理解优化器行为。
1. 核心功能特点
10046事件的核心价值在于其多层次的跟踪能力,不同级别提供不同深度的诊断信息:
基础跟踪(Level 1)​ ​:
  • 提供SQL执行全貌,包括SQL文本、执行计划、物理/逻辑I/O次数、CPU时间以及处理的行数等核心指标。此级别相当于标准SQL_TRACE的功能,但信息组织更为系统化。
绑定变量捕获(Level 4)​ ​:
  • 在Level 1基础上增加对绑定变量值的跟踪能力。此功能对于解决因绑定变量窥视(Bind Peeking)导致的执行计划不稳定问题至关重要,能够揭示不同绑定值对执行路径的影响。
等待事件跟踪(Level 8)​ ​:
  • 在Level 1基础上增加对等待事件细节的记录,包括事件名称、等待时间及等待次数。此级别特别有助于分析I/O竞争(latch free, enqueue)、锁争用和缓冲区忙等待等并发问题。
全面诊断(Level 12)​ ​:
  • 作为最常用的级别,Level 12结合了Level 1、4和8的全部功能,同时捕获SQL统计信息、绑定变量值和等待事件,提供360度的性能洞察。这是诊断复杂性能问题的首选级别。
高级跟踪(Level 16/32/64)​​:
  • 在11g及更高版本中引入的增强级别。Level 16为每次执行生成执行统计信息;Level 32则减少执行计划输出以精简文件;Level 64在首次执行后当执行时间显著增加时补充生成执行计划,用于捕获计划突变(Plan Flip)问题。
表:10046事件跟踪级别与功能对应关系

​跟踪级别​

​功能描述​

​适用场景​

Level 1

SQL基础统计+执行计划

常规性能分析

Level 4

Level 1 + 绑定变量值

绑定变量相关性能问题

Level 8

Level 1 + 等待事件

资源争用分析

Level 12

Level 1+4+8的综合

复杂性能问题诊断

Level 16

每次执行的详细统计

多次执行场景分析

Level 32

Level 1排除执行计划

减少跟踪文件大小

Level 64

自适应执行计划生成

执行计划突变分析

2. 底层技术原理
10046事件的工作原理本质上是 激活Oracle内核的诊断引擎,通过事件机制将特定的内部仪器点(Instrumentation Points)与跟踪功能关联。当事件激活后,Oracle会在以下关键环节注入诊断代码:
解析阶段 ​:
  • 记录SQL的硬解析/软解析细节,包括库缓存未命中情况(library cache misses)、语法分析树生成过程以及优化器成本计算。此阶段生成的信息对理解解析开销至关重要,特别是当应用存在大量硬解析时。
执行阶段 ​:
  • 捕获运行时统计信息,包括物理读/写次数(disk)、一致性读(consistent gets)、当前模式读(db block gets)以及CPU消耗。同时记录执行计划的实际运算过程,包括行操作(Row Source Operation)的执行顺序和数据流。
数据获取阶段 ​:
  • 跟踪结果集返回过程中的性能指标,包括网络往返次数、获取行数以及客户端处理延迟。此阶段信息对识别网络瓶颈或结果集过大问题有重要价值。
绑定与等待 ​:
  • 在各级别激活时,分别记录变量绑定细节​(如变量数据类型、值、长度)和资源等待细节​(如等待事件名称、持续时间、参数)。这些信息写入磁盘上的跟踪文件,默认存储在user_dump_dest或background_dump_dest目录(11g之前)或统一的DIAGNOSTIC_DEST目录(11g及以后)。
跟踪过程依赖几个关键参数协同工作:
  • timed_statistics:启用高精度时间统计,为等待事件和CPU时间提供微秒级精度
  • max_dump_file_size:控制跟踪文件大小,避免磁盘溢出
  • tracefile_identifier:设置跟踪文件标识符,简化文件定位
  • statistics_level:设置为ALL时增强执行计划细节

三、版本演进与特性变化

Oracle数据库的各版本对10046事件的功能进行了持续增强,这些演进反映了Oracle在诊断能力上的深化和细化。了解不同版本的行为差异对于准确解读跟踪结果至关重要,特别是在跨版本数据库环境中的性能分析工作中。
1. Oracle 9i及更早版本
在Oracle 9i时代,10046事件已 奠定其核心框架,提供了基础跟踪能力但存在诸多限制。该版本支持Level 1、4、8和12级别的跟踪,但每个级别的信息完整度与现代版本相比仍有差距。此时期的跟踪文件存储在传统目录结构中,用户进程跟踪文件位于user_dump_dest,后台进程跟踪文件则位于background_dump_dest,两者分离管理增加了文件定位的复杂度。执行计划输出机制较为简单,缺乏对执行计划细节的深度展示,特别是缺少行操作(Row Source Operation)的具体资源消耗数据。
版本特性验证脚本​: 
-- 9i环境设置
ALTER SESSION SET timed_statistics = TRUE;
ALTER SESSION SET max_dump_file_size = unlimited;
ALTER SESSION SET events '10046 trace name context forever, level 8';-- 执行待跟踪SQL
SELECT /*+ ALL_ROWS */ * FROM scott.emp WHERE deptno = 20;-- 关闭跟踪
ALTER SESSION SET events '10046 trace name context off';
2. Oracle 10g版本

10g版本对10046事件进行了重要改进,特别是在执行计划处理机制上。最显著的增强是引入了执行计划自动写入功能,但此功能仅当相关游标关闭时才触发,且执行统计信息是该游标所有执行次数的累计数据。这一特性使得分析多次执行的SQL语句变得困难,因为无法区分单次执行的资源消耗。10g还增强了跟踪文件的可管理性,通过tracefile_identifier参数允许用户自定义跟踪文件标识,大大简化了文件识别过程。然而在文件存储结构上,10g仍沿用了9i的双目录设计,尚未引入统一的诊断目录。 

版本特性验证脚本​: 
-- 10g环境设置
ALTER SESSION SET tracefile_identifier = '10g_trace_level8';
ALTER SESSION SET events '10046 trace name context forever, level 8';-- 执行待跟踪SQL(多次执行)
BEGINFOR i IN 1..5 LOOPEXECUTE IMMEDIATE 'SELECT /*+ 10g_trace */ * FROM scott.emp WHERE sal > :1' USING i*500;END LOOP;
END;
/-- 关闭跟踪
ALTER SESSION SET events '10046 trace name context off';
3. Oracle 11g版本
11g版本标志着10046事件进入 现代化阶段,进行了多项架构性改进:
诊断框架重构 ​:
  • 引入DIAGNOSTIC_DEST参数统一管理所有诊断文件,取代了传统的user_dump_dest和background_dump_dest分离结构。跟踪文件路径标准化为:/diag/rdbms///trace/,极大简化了文件定位。
执行计划输出优化 ​:
  • 调整为在游标的第一次执行后立即写入跟踪文件,执行统计信息仅反映该次执行的数据。这一变化使得分析单次执行行为更准确,但失去了历史累计视角。
新增跟踪级别 ​:
  • 引入Level 16(每次执行生成STAT行)、Level 32(减少执行计划输出)和Level 64(自适应执行计划生成)。特别是Level 16使得分析多次执行场景中每次执行的差异性成为可能,对理解执行计划稳定性价值显著。
文件位置查询简化 ​:
  • 提供通过v$diag_info视图直接查询当前会话跟踪文件路径的能力,取代了复杂的多表连接查询。
​版本特性验证脚本​: 
-- 11g环境设置
ALTER SESSION SET tracefile_identifier = '11g_trace_level16';
ALTER SESSION SET events '10046 trace name context forever, level 16';-- 获取跟踪文件路径
SELECT value AS trace_file FROM v$diag_info WHERE name = 'Default Trace File';-- 执行待跟踪SQL(多次执行)
BEGINFOR i IN 1..3 LOOPEXECUTE IMMEDIATE 'SELECT /*+ 11g_level16 */ * FROM scott.dept WHERE deptno = :1' USING i*10;END LOOP;
END;
/-- 关闭跟踪
ALTER SESSION SET events '10046 trace name context off';
4. Oracle 12c~及后续版本
12c及后续版本(包括18c、19c和21c)在保持10046事件核心功能稳定的同时,主要进行了 生态系统适应性改进​:
自适应优化器集成 ​:
  • 针对12c引入的自适应执行计划特性(如自适应连接方法、自适应并行分布),10046跟踪增加了相关诊断信息。在Level 8和Level 12中可捕获因自适应优化器特性导致的额外等待事件和执行计划调整。
多租户环境支持 ​:
  • 在CDB/PDB架构中,10046跟踪文件按容器隔离存储,路径中包含PDB标识信息。在PDB环境中,诊断文件存储在/diag/rdbms///trace/目录中,确保多租户环境下的诊断隔离。
云环境增强 ​:
针对Exadata、Autonomous Database等云环境优化了跟踪文件访问接口,支持通过DBMS_CLOUD包访问跟踪文件,便于云环境中的诊断分析。
版本特性验证脚本​-PDB上实操:
-- 12c+~ PDB环境设置
ALTER SESSION SET container = FREEPDB1;
ALTER SESSION SET tracefile_identifier = 'pdb_trace_level12';
ALTER SESSION SET events '10046 trace name context forever, level 12';
-- 执行待跟踪SQL(使用自适应特性)
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('19.3') */ e.FIRST_NAME, d.DEPARTMENT_NAME
FROM HR.EMPLOYEES e JOIN HR.DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
WHERE e.SALARY > 1500;
-- 关闭跟踪
ALTER SESSION SET events '10046 trace name context off';
--
SYS@CDB$ROOT> ALTER SESSION SET container = FREEPDB1;Session altered.SYS@CDB$ROOT> ALTER SESSION SET tracefile_identifier = 'pdb_trace_level12';Session altered.SYS@CDB$ROOT> ALTER SESSION SET events '10046 trace name context forever, level 12';Session altered.SYS@CDB$ROOT> SELECT /*+ OPTIMIZER_FEATURES_ENABLE('19.3') */ e.FIRST_NAME, d.DEPARTMENT_NAME2  FROM HR.EMPLOYEES e JOIN HR.DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID3* WHERE e.SALARY > 1500;
Jennifer      Administration
Michael       Marketing
Pat           Marketing
Den           Purchasing
…………………………
Luis          Finance
Shelley       Accounting
William       Accounting106 rows selected.
SYS@CDB$ROOT> ALTER SESSION SET events '10046 trace name context off';
Session altered.
SYS@CDB$ROOT>
 Oracle各版本10046事件能力对比

​特性​

​9i及更早​

10g​

​11g​

​12c~及以后​

​跟踪级别支持​

1,4,8,12

1,4,8,12

增加16,32,64

同11g,优化自适应支持

​执行计划输出时机​

无固定规则

游标关闭时

首次执行后

同11g

​文件存储结构​

user/background_
dump_dest分离

同9i

DIAGNOSTIC_DEST
统一存储

同11g,支持PDB隔离

​文件位置查询​

复杂多表查询

同9i

v$diag_info视图

同11g

​关键增强​

基础框架

tracefile_identifier

新增级别、诊断目录统一

自适应优化器集成

相关文章:

59-Oracle 10046事件-知识准备

上一篇说到了autotrace,SQL调试时候的获取性能和参数数据,直接用上trace,还有个更全能的工具10046。是不是很多小伙伴会对这么个数字,觉得起名很奇怪,数字起名任性。“10046”本质是Oracle内核事件的随机性技术编号&am…...

2025年渗透测试面试题总结-2025年HW(护网面试) 03(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 2025年HW(护网面试) 03 1. 同源策略(Same-Origin Policy) 2. XSS攻击用途 3. XSS类…...

嵌入式开发之嵌入式系统硬件架构设计时,如何选择合适的微处理器/微控制器?

在嵌入式系统硬件架构设计中,选择合适的微处理器 / 微控制器(MCU/MPU)是关键环节,需从多维度综合评估。以下是系统化的选择策略及核心考量因素: 一、明确应用需求与核心指标 1. 性能需求 处理能力:根据任…...

C++(面向对象编程——继承)

继承基础概念 1.什么是继承? 继承是C三大特性之一;继承是一个已经存在的类的基础上新建一个类,新建的类拥有已经存在的类的特性。主要提现的是代码复用的思想。新的类继承了基类的所有成员变量和成员函数,包括不显示的函数&…...

Unity Shader开发-着色器变体(2)-定义着色器变体

一.定义着色器变体 定义一个着色器变体(Shader Variant)从概念和实现上讲,主要包括以下几个核心部分 1.使用预编译指令来声明变体关键字 关键字是驱动变体生成的“开关”。它们是简单的字符串标识符,用于在 Shader 代码中标记不…...

Cookie和Session的作用和区别

Cookie 客户端持久化保存服务器数据的一种机制(持久化存储就是存硬盘里)。Cookie文件数据为键值对形式,客户端根据服务器域名的不同分别存储Cookie,不同域名的Cookie不同,不会产生冲突。 典型应用场景: 保…...

Redis集群部署终极指南:架构选型、生产部署与深度优化

第一部分:Redis集群技术全景解析 1.1 Redis集群演进史 单机时代(2009-2012):Redis 2.8之前,纯单机模式复制时代(2012-2015):Redis 2.8引入PSYNC改进复制哨兵时代(2015-…...

腾讯云IM即时通讯:开启实时通信新时代

一、引言 在当今数字化浪潮席卷全球的时代,即时通讯已然成为互联网世界中不可或缺的关键元素。无论是个人日常生活中的社交互动,还是企业运营里的高效协作,即时通讯都发挥着举足轻重的作用,已然渗透到人们生活与工作的每一个角落…...

基于Qt的UDP主从服务器设计与实现

概述 一个基于Qt框架实现的UDP主从服务器系统,该系统具备自动主机选举、故障转移和状态同步等关键功能,适用于分布式能源管理系统中的设备通信与协调。 系统核心功能 1. 自动主机选举与故障转移 系统通过优先级机制实现自动主机选举,当主机…...

JVM(8)——详解分代收集算法

JVM 的分代收集算法不是一种具体的垃圾收集算法实现,而是一种指导思想和设计原则,是现代 JVM 垃圾收集器的基石。其核心思想源于对程序运行过程中对象生命周期分布的观察(即弱分代假说)。 核心思想与理论基础:分代假说…...

深入Java面试:从Spring Boot到微服务

深入Java面试:从Spring Boot到微服务 在准备互联网大厂的Java岗位面试时,掌握核心技术栈是关键。本文将从技术栈中选取几个重要的技术点进行探讨,帮助你在面试中脱颖而出。 问题一:Spring Boot的核心特性是什么? 面…...

【软考高级系统架构论文】论无服务器架构及其应用

论文真题 近年来,随着信息技术的迅猛发展和应用需求的快速更迭,传统的多层企业应用系统架构面临越来越多的挑战,已经难以适应这种变化。在这一背景下,无服务器架构(Serverless Architecture) 逐渐流行,它强调业务逻辑由事件触发,具有短暂的生命周期,运行于无状态的轻量…...

Snapchat矩阵运营新策略:亚矩阵云手机打造高效社交网络

1. Snapchat平台特性与风控挑战​​ Snapchat作为全球领先的即时社交平台,其独特的阅后即焚功能和强社交属性使其风控系统极为严格: ​​核心风控机制​​ ​​设备指纹检测​​:记录设备ID、系统版本、IP地址等硬件信息​​行为模式分析​…...

BGP路由反射器(RR)实验详解,结尾有详细脚本

目录 路由反射器基础概念 实验拓扑与设计 实验配置步骤 配置验证与排错 实验总结 完整配置命令集 路由反射器基础概念 在传统的IBGP网络中,为了防止路由环路,BGP规定通过IBGP学到的路由不能再传递给其他IBGP对等体,这导致所有IBGP路由…...

【JAVA】数组的使用

文章目录 前言一、数组的基本概念1.1 数组的创建和初始化1.2 数组的基本使用 二、数组是引用类型2.1 初始JVM的内存分布JVM内存划分(按功能分区) 2.2 基本类型变量与引用类型变量的区别2.3 再谈引用变量2.4 认识null 三、数组作为函数的参数和返回值四、…...

Python的6万张图像数据集CIFAR-10和CIFAR-100说明

CIFAR-10和CIFAR-100数据集是8000万张微小图像数据集的标记子集。CIFAR-10和CIFAR-100都是由AlexKrizhevsky、VinodNair和GeoffreyHinton创建。数据集说明的网页:https://www.cs.toronto.edu/~kriz/cifar.html 一、CIFAR-10数据集 (一)CIFA…...

CTF--PhP Web解题(走入CTF)

前情提要 分享有趣CTF题目&#xff0c;记录学习过程 题目&#xff08;带注释,方便理解&#xff09; <?php // 开启PHP源代码高亮显示&#xff0c;输出当前文件内容&#xff08;用于调试/展示&#xff09; highlight_file(__FILE__);// 关闭所有错误报告&#xff0c;防止敏感…...

【Linux仓库】进程概念与基本操作【进程·贰】

&#x1f31f; 各位看官好&#xff0c;我是&#xff01; &#x1f30d; Linux Linux is not Unix &#xff01; &#x1f680; 今天来学习Linux中进程概念与基本操作。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更多人哦&#xff01…...

Z-Ant开源程序是简化了微处理器上神经网络的部署和优化

​一、软件介绍 文末提供程序和源码下载 Z-Ant &#xff08;Zig-Ant&#xff09; 是一个全面的开源神经网络框架&#xff0c;专门用于在微控制器和边缘设备上部署优化的 AI 模型。Z-Ant 使用 Zig 构建&#xff0c;为资源受限的硬件上的模型优化、代码生成和实时推理提供端到端…...

面试题-在ts中类型转换的方法

在 TypeScript 中&#xff0c;类型转换主要分为 类型断言&#xff08;Type Assertion&#xff09;、类型守卫&#xff08;Type Guard&#xff09; 和 类型兼容转换 三种方式。以下是详细分类和示例&#xff1a; 一、类型断言&#xff08;Type Assertion&#xff09; 强制编译…...

【论文笔记】【强化微调】T-GRPO:对视频数据进行强化微调

tulerfeng/Video-R1: Video-R1: Reinforcing Video Reasoning in MLLMs [&#x1f525;the first paper to explore R1 for video] 1. 引述 在强化微调中&#xff0c;像 GRPO、DAPO 这样的方法都是对文本或者图片进行微调思考&#xff0c;所以这类微调方法不对时序信息做处理&…...

`shallowReactive` 与 `shallowRef`:浅层响应式 API

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

使用Node.js开发服务端接口

Node.js是一个基于JavaScript的运行时环境&#xff0c;非常适合开发高性能的服务端接口。以下是开发服务端接口的主要方法和步骤。 选择合适的框架 Express、Koa或Fastify是Node.js中常用的框架。Express是最流行的选择&#xff0c;适合快速开发。Koa更轻量&#xff0c;适合需…...

`teleport` 传送 API 的使用:在 Vue 3 中的最佳实践

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

Linux 多种方式实现行转列

目录 一. 前提二. xargs 实现行转列三. paste 实现行转列四. sed 实现行转列 一. 前提 ⏹之前在这下面篇文章中使用sed命令实现了行专列&#xff0c;本篇文章再介绍几种更加简单的方式。 Linux sed案例 &#x1f449; 20231126-2.log 110120 SPLREQUEST 内容1 AAA memberID1…...

AI与SEO关键词协同进化

内容概要 人工智能&#xff08;AI&#xff09;与搜索引擎优化&#xff08;SEO&#xff09;的结合&#xff0c;正深刻变革着关键词策略的制定与执行方式。本文旨在探讨AI技术如何驱动SEO关键词领域的智能化进化&#xff0c;核心在于利用AI强大的数据处理与模式识别能力&#xf…...

C# 网络编程-关于HTTP/HTTPS的基础(一)

一、HTTP基础概念 1. 请求-响应模型 HTTP是基于客户端-服务器的无状态协议&#xff0c;流程如下&#xff1a; 客户端&#xff08;如浏览器&#xff09;发起请求。服务器接收请求并处理。服务器返回响应&#xff0c;包含状态码、Header和响应体。连接关闭&#xff0c;后续请求…...

题解:P11501 [ROIR 2019] 探险队(Day 2)

前言&#xff1a;这道题 dp 做法找环的部分还没有用拓扑做的&#xff0c;补充一下。 这道题其实很像“上司的舞会”&#xff0c;就是求树上最大独立集。 这里我们把每个人向他讨厌的那个人连边&#xff08;发现所有点出度均为 1 1 1&#xff0c;所以这是一个基环树&#xff0…...

读者写者问题与读写锁自旋锁

一、读者写者问题 读者写者问题具有以下特点&#xff1a; 一个交易场所---写者写入数据&#xff0c;读者读数据两种角色---读者&#xff0c;写者三种关系 读者和读者---并发写者和写者---互斥读者和写者---互斥 && 同步 二、读者写者VS生产消费 生产者消费者模型中…...

Sublime text启用vim

打开&#xff1a;首选项 > 设置&#xff0c;在打开的输入框中把 "ignored_packages": ["Vintage"] 修改为 "ignored_packages": []&#xff0c;不忽略Vintage&#xff0c;即为启用Vintage&#xff0c;它是Sublime的内置vim插件。 然后再添加&…...

蚂蚁百宝箱快速创建智能体AI小程序

蚂蚁百宝箱官网https://tbox.alipay.com/community?operationSource1006/ 以下是一篇关于蚂蚁百宝箱快速创建智能体 AI 小程序的图文并茂的博客&#xff1a; 标题&#xff1a;蚂蚁百宝箱快速创建智能体 AI 小程序&#xff0c;开启智能应用新体验 引言 在数字化飞速发展的当…...

【Anconda安装教程】安装到环境配置全流程

目录 前言 一、进入官网下载 二、下载Anconda​编辑 三、安装Anconda 四、配置环境变量 五、验证是否安装成功 六、anaconda的使用 情况一&#xff1a;电脑现在没有装python或者现在装的可以卸载掉 情况二&#xff1a;电脑目前装了python&#xff0c;但想保留它 6.1 进…...

Linux系统编程 | IPC对象---信号量

在前面两篇博客文章中&#xff0c;对Linux系统编程部分IPC三大对象中的消息队列和共享内存的知识体系做了一个大致的梳理&#xff0c;在本篇文章中&#xff0c;将对三大IPC对象中的最后一个信号量做一个总结。如果有需要的博客朋友&#xff0c;可以参考我的Linux系统编程专栏参…...

当数据自己会说话:聚类与分类算法全景解析

从金融风控到医疗诊断&#xff0c;两种机器学习技术如何重塑决策逻辑 在人工智能与数据驱动的时代&#xff0c;聚类和分类作为机器学习的两大核心技术&#xff0c;已成为从海量数据中提取价值的必备工具。它们看似相似——都是将数据划分到不同的组中——但内在逻辑和应用场景却…...

哈佛结构(Harvard Architecture)与冯·诺依曼架构(Von Neumann Architecture)

一、基础概念与历史溯源 哈佛结构 起源&#xff1a;1940年代由哈佛大学开发的Mark I计算机首次采用&#xff0c;专为弹道计算优化。核心特征&#xff1a; 物理分离的存储器&#xff1a;程序指令存储在ROM/Flash&#xff0c;数据存储在RAM&#xff0c;两者独立编址。独立总线系统…...

Python内存使用分析工具深度解析与实践指南(下篇)

文章目录 引言6. guppy3 / Heapy功能安装程序示例适用场景注意事项 7. objgraph功能安装程序示例适用场景注意事项 8. memory_profiler功能安装程序示例适用场景注意事项 9. profile&#xff08;标准库&#xff09;功能程序示例适用场景注意事项 总结对比表 引言 在Python编程…...

经典控制理论:线性化笔记

一、弹簧阻尼系统 求B点的位置X0&#xff0c;与弹簧形变后的位置X1的关系 ---- 解&#xff1a; 二、直流电动机模型 求输出转速与输入电压的关系 解&#xff1a;...

【StarRocks系列】查询优化

步骤参考官网 分析查询 | StarRocks StarRocks-Profile分析及优化指南 StarRocks-Profile分析及优化指南 - 经验教程 - StarRocks中文社区论坛...

【STM32】STM32的中断系统寄存器NVIC、EXTI

文章目录 中断概述中断的概念为什么需要中断STM32的中断 STM32的中断体系架构NVICNVIC的介绍中断优先级优先级寄存器优先级组 EXTI 中断概述 中断的概念 在主程序运行过程中&#xff0c;出现了特定事件&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;转而去处理这个事…...

LLM-201: OpenHands与LLM交互链路分析

一、核心交互链路架构 #mermaid-svg-ZBqCSQk1PPDkIXNx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ZBqCSQk1PPDkIXNx .error-icon{fill:#552222;}#mermaid-svg-ZBqCSQk1PPDkIXNx .error-text{fill:#552222;strok…...

税务 VR 虚拟体验,带来全新办税感受

在过去&#xff0c;企业办税难题诸多。申报纳税高峰期&#xff0c;办税服务厅人满为患&#xff0c;财务人员需早起取号排队&#xff0c;耗费大量时间。传统办税流程复杂&#xff0c;涉及多环节和部门&#xff0c;资料繁多&#xff0c;若准备不全或有误就得重新准备&#xff0c;…...

【Linux 驱动中断】

Linux 驱动中断 一、GIC 控制器&#xff1a;硬件中断的枢纽二、GPIO 中断&#xff1a;设备交互的常见入口三、Tasklet 与软中断&#xff1a;高效的异步处理机制3.1 Tasklet3.2 软中断 四、工作队列&#xff1a;灵活的任务处理框架4.1 共享工作队列4.2 自定义工作队列4.3 延迟工…...

ali 轻量服务器安装nginx

# Ubuntu sudo apt install nginx-light # 精简版 # CentOS sudo yum install nginx #启动并设置开机自启 sudo systemctl daemon-reload sudo systemctl start nginx sudo systemctl enable nginx #验证安装 nginx -v curl -I 127.0.0.1 #常用命令&#xff1a; # 重新加载配…...

2025年- H83-Lc191--139.单词拆分(动态规划)--Java版

1.题目描述 2.思路 字符串s是一个容器&#xff08;一个背包&#xff09;&#xff0c;wordDict词典是物品&#xff0c;这里面的每个物品我们可以使用多次。 动归五部曲 &#xff08;1&#xff09;字符串的长度为i&#xff0c;dp[i]true。 dp[s.size] dp[0]代表空字符串 &#x…...

【好用但慎用】Windows 系统中将所有 WSL 发行版从 C 盘迁移到 非系统 盘的完整笔记(附 异常处理)

&#x1f680; 将所有 WSL 发行版从 C 盘迁移到 I 盘的完整教程&#xff08;含 Podman / NVIDIA Workbench / Ubuntu 等&#xff09; 【无标题】使用 Chocolatey 安装 WSL 管理工具 LxRunOffline-CSDN博客 免责声明 重要提示 在执行 WSL 迁移操作前&#xff0c;请务必仔细阅读…...

贪心算法思路详解

文章目录 一、贪心算法是什么&#xff1f;二、贪心算法原理三、再谈背包问题四、活动选择问题五、拟阵理论总结 一、贪心算法是什么&#xff1f; 贪心算法与动态规划算法一样是用于求解最优化类问题的算法&#xff0c;其本质上是基于动态规划算法的改进算法&#xff0c;其所求…...

Keil 安装 CMSIS-FreeRTOS 失败解决方案

一、问题现象 在 Keil 中安装 CMSIS-FreeRTOS 时出现以下错误&#xff1a; &#xff08;1&#xff09; 通过内置工具安装&#xff1a; &#xff08;2&#xff09;通过官网安装&#xff1a; 二、核心原因 Keil 版本过低&#xff0c;与 CMSIS-FreeRTOS 包不兼容&#xff1a; …...

Python打卡DAY33

DAY33&#xff1a;MLP神经网络的训练 恩师浙大疏锦行 知识点&#xff1a; PyTorch和cuda的安装查看显卡信息的命令行命令&#xff08;cmd中使用&#xff09;cuda的检查简单神经网络的流程 数据预处理&#xff08;归一化、转换成张量&#xff09;模型的定义 继承nn.Module类定义…...

RJ45 网口实现千兆传输速率(1Gbps)的原理,涉及物理层传输技术、线缆标准、信号调制及网络协议等多方面的协同设计。以下从技术维度展开详细解析:

一、千兆以太网的标准与物理层基础 1. 标准规范 千兆以太网遵循 IEEE 802.3ab&#xff08;针对双绞线&#xff09;和 IEEE 802.3z&#xff08;针对光纤&#xff09;标准&#xff0c;其中 RJ45 接口对应双绞线场景&#xff0c;核心是通过四对双绞线&#xff08;CAT5e/CAT6 线缆…...

leetcode hot 100之:二叉树的层序遍历

层序遍历和前中后序遍历不一样&#xff0c;大家可以想象的是&#xff1a;前中后序遍历可以用递归&#xff0c;因为他是以子树为标准来选择的&#xff1b;那层序怎么办呢&#xff1f;怎么才能一层层地遍历呢&#xff1f; void First(TreeNode* root) {printf("%d",ro…...