批量占满TEMP表空间问题处理与排查
批量占满TEMP表空间问题处理与排查
- 应急处置
- 问题排查
- 查看占用TEMP表空间高的SQL
- 获取目标SQL执行计划
- 方法一:EXPLAIN PLAN FOR
- 方法二:DBMS_XPLAN.DISPLAY_CURSOR
- 方法三:DBMS_XPLAN.DISPLAY_AWR
- 方法四:AUTOTRACE
数据库跑批任务占满TEMP表空间时,如果空间资源足够,可以应急扩容TEMP表空间,以避免批量失败。事后可以通过查看占用TEMP表空间高的SQL执行计划,并结合批量的业务逻辑,作进一步分析。
应急处置
查看temp表空间容量(OMF模式):
--查看临时表空间文件以及是否自动扩展
set linesize 200
col file_name format a60
select tablespace_name, file_name,
bytes/1024/1024 size_mb, maxbytes/1024/1024 max_mb,autoextensible
from dba_temp_files;--查看临时表空间大小以及使用率
select tablespace_name, tablespace_size/1024/1024 size_mb,
free_space/1024/1024 free_mb,
round((1 - nvl(free_space,0)/tablespace_size)*100,2) used_percent
from dba_temp_free_space;
扩容temp表空间(OMF模式):
--临时表空间扩容
alter tablespace temp add tempfile;
问题排查
查看占用TEMP表空间高的SQL
查看指定时间段内占用TEMP表空间高的SQL:
-- v$active_session_history中记录了当前活动会话的快照信息(取样频率为每秒一次)。
-- v$sql中记录了SQL语句的子游标信息,对于正在执行的SQL,每5s会更新一次信息。
set lines 200
col sample_time for a30
select *from (select t.sample_time,s.PARSING_SCHEMA_NAME,t.sql_id,t.sql_child_number as sql_child,round(t.temp_space_allocated/1024/1024/1024, 2) || ' G' as temp_used,round(t.temp_space_allocated /(select sum(decode(d.autoextensible, 'YES', d.maxbytes, d.bytes))from dba_temp_files d),2) * 100 || ' %' as temp_pct,t.program,t.module,s.SQL_TEXTfrom v$active_session_history t, v$sql swhere t.sample_time > to_date('2023-02-01 02:00:00', 'yyyy-mm-dd hh24:mi:ss')and t.sample_time < to_date('2023-02-01 03:00:00', 'yyyy-mm-dd hh24:mi:ss')and t.temp_space_allocated is not nulland t.sql_id = s.SQL_IDorder by t.temp_space_allocated desc)where rownum < 20order by temp_used desc;
利用上面获取到的SQL_ID,可以查看SQL文本:
select sql_id, sql_fulltext from v$sql where sql_id = 'zhjw76kh3hjs';
获取目标SQL执行计划
方法一:EXPLAIN PLAN FOR
explain plan for <目标SQL文本>;
--例如:
--explain plan for select empno,ename,dname from scott.emp,scott.dept where emp.deptno=dept.deptno;select * from table(dbms_xplan.display);
方法二:DBMS_XPLAN.DISPLAY_CURSOR
查看刚刚执行过的SQL的执行计划:
select * from table(dbms_xplan.display_cursor(null,null,'advanced'));
查看指定sql_id
的SQL执行计划:
select * from table(dbms_xplan.display_cursor('sql_id或sql_hash_value',null,'advanced'));
--例如:
--select * from table(dbms_xplan.display_cursor('2zxtkjmt05up',null,'advanced'));
查看指定sql_id
或sql_hash_value
、以及子游标的SQL执行计划:
select sql_text,sql_id,hash_value,child_number from v$sql
where sql_text like 'select empno,ename%';--代入上面查到的sql_id(或hash_value)、以及child_number
select * from table(dbms_xplan.display_cursor('sql_id或sql_hash_value',
child_cursor_number,'advanced'));
方法三:DBMS_XPLAN.DISPLAY_AWR
查看指定SQL_ID
的所有历史执行计划:
select * from table(dbms_xplan.display_awr('sql_id'));
查看指定SQL_ID
在指定时间段采用的执行计划PLAN_HASH_VALUE
:
select distinct b.begin_interval_time, a.sql_id, a.plan_hash_value
from dba_hist_sqlstat a, dba_hist_snapshot b
where sql_id='2zxtkjmt05up'
and a.snap_id = b.snap_id
and to_char(b.begin_interval_time, 'yyyy-mm-dd hh24:mi:ss') > '2023-02-01 23:59:59';
方法四:AUTOTRACE
AUTOTRACE命令的使用方法如下:
set autotrace {off|on|traceonly} [explain] [stattistics]
- SET AUTOTRACE ON
AUTOTRACE默认是关闭的,执行set autotrace on
可以在当前session中开启autotrace。开启autotrace后,当前session中随后所有执行的SQL不仅会显示执行结果,还会显示SQL对应的执行计划和资源消耗情况。执行set autotrace off
可以关闭autotrace。
- SET AUTOTRACE TRACEONLY
与SET AUTOTRACE ON相比,省略了SQL执行结果的具体内容,只会显示执行结果的行数、SQL执行计划和资源消耗情况。
- SET AUTOTRACE TRACEONLY EXPLAIN
只显示SQL的执行计划,不会显示SQL执行结果和资源消耗情况。
- SET AUTOTRACE TRACEONLY STATISTICS
只显示SQL执行时的资源消耗情况、以及执行结果的行数,不会显示SQL执行结果的具体内容,也不会显示执行计划。
相关文章:
批量占满TEMP表空间问题处理与排查
批量占满TEMP表空间问题处理与排查应急处置问题排查查看占用TEMP表空间高的SQL获取目标SQL执行计划方法一:EXPLAIN PLAN FOR方法二:DBMS_XPLAN.DISPLAY_CURSOR方法三:DBMS_XPLAN.DISPLAY_AWR方法四:AUTOTRACE数据库跑批任务占满TE…...
Pytorch中的tensor和variable
Tensor与Variable pytorch两个基本对象:Tensor(张量)和Variable(变量) 其中,tensor不能反向传播,variable可以反向传播(forword)。 反向传播是为了让神经网络更新前面…...

暗月内网渗透实战——项目七
首先环境配置 VMware的网络配置图 环境拓扑图 开始渗透 信息收集 使用kali扫描一下靶机的IP地址 靶机IP:192.168.0.114 攻击机IP:192.168.0.109 获取到了ip地址之后,我们扫描一下靶机开放的端口 靶机开放了21,80,999,3389,5985,6588端口…...

【Java 面试合集】描述下Objec类中常用的方法(未完待续中...)
描述下Objec类中常用的方法 1. 概述 首先我们要知道Object 类是所有的对象的基类,也就是所有的方法都是可以被重写的。 那么到底哪些方法是我们常用的方法呢??? cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringw…...

SQLSERVER 的 truncate 和 delete 有区别吗?
一:背景 1. 讲故事 在面试中我相信有很多朋友会被问到 truncate 和 delete 有什么区别 ,这是一个很有意思的话题,本篇我就试着来回答一下,如果下次大家遇到这类问题,我的答案应该可以帮你成功度过吧。 二࿱…...

【C++】CC++内存管理
就是你被爱情困住了?Wake up bro! 文章目录一、C/C内存分布二、C语言中动态内存管理方式三、C中内存管理方式1.new和delete操作内置类型2.new和delete操作自定义类型(仅限vs的底层实现机制,new和delete一定要匹配使用,…...
数据预处理之图像去空白
数据预处理之图像去空白图像去空白介绍方法边缘检测阈值处理形态学图像剪切图像去空白 介绍 图像去空白是指在图像处理中去除图像中的空白区域的过程。空白区域通常是指图像中的白色或其他颜色,其不包含有用的信息。去空白的目的是为了节省存储空间、提高图像处理…...

真的麻了,别再为难软件测试员了......
前言 有不少技术友在测试群里讨论,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些测试工程师了。 这不,为了帮大家节约时…...
2月9日,30秒知全网,精选7个热点
///货拉拉将推出同城门到门跑腿服务 据介绍,两轮电动车将成为该业务的主要运力,预计将于3月中旬全面开放骑手注册和用户人气征集活动,并根据人气和线上骑手注册情况选择落地城市,于4月正式开放服务和骑手接单 ///三菱、乐天和莱茵…...

球面坐标系下的三重积分
涉及知识点 三重积分球面坐标系点火公式一些常见积分处理手法 球面坐标系定义 球面坐标系由方位角φ\varphiφ、仰角θ\thetaθ和距离rrr构成 直角坐标系(x,y,z)(x,y,z)(x,y,z)到球面坐标系的(r,φ,θ)(r,\varphi,\theta)(r,φ,θ)的转化规则如下: {xrsinφco…...
谷歌 Jason Wei | AI 研究的 4 项基本技能
文章目录 一、前言二、主要内容三、总结CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 原文作者为 Jason Wei,2020 年达特茅斯学院本科毕业,之后加入 Google Brain 工作。 Jason Wei 的博客主页:https://www.jasonwei.net/ 其实我不算是一个特别有经验的研究员…...

excel数据整理:合并计算快速查看人员变动
相信大家平时在整理数据时,都会对比数据是否有重复的地方,或者该数据与源数据相比是否有增加或者减少。数据量不大还好,数据量大的话,对比就比较费劲了。接下来我们将进入数据对比系列课程的学习。该系列一共有两篇教程࿰…...

vit-pytorch实现 MobileViT注意力可视化
项目链接 https://github.com/lucidrains/vit-pytorch 注意一下参数设置: Parameters image_size: int. Image size. If you have rectangular images, make sure your image size is the maximum of the width and heightpatch_size: int. Number of patches. im…...

Python将字典转换为csv
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…...

EasyX精准帧率控制打气球小游戏
🎆音乐分享 New Boy —— 房东的猫 之前都用Sleep()来控制画面帧率,忽略了绘制画面的时间 如果绘制画面需要很长的时间,那么就不能忽略了。 并且Sleep()函数也不是特别准确,那么就…...

你知道 GO 中什么情况会变量逃逸吗?
你知道 GO 中什么情况会变量逃逸吗?首先我们先来看看什么是变量逃逸 Go 语言将这个以前我们写 C/C 时候需要做的内存规划和分配,全部整合到了 GO 的编译器中,GO 中将这个称为 变量逃逸 GO 通过编译器分析代码的特征和代码的生命周期&#x…...

一篇文章学懂C++和指针与链表
指针 目录 指针 C的指针学习 指针的基本概念 指针变量的定义和使用 指针的所占的内存空间 空指针和野指针 const修饰指针 指针和数组 指针和函数 指针、数组、函数 接下来让我们开始进入学习吧! C的指针学习 指针的基本概念 指针的作用:可…...
TPGS-cisplatin顺铂修饰维生素E聚乙二醇1000琥珀酸酯
TPGS-cisplatin顺铂修饰维生素E聚乙二醇1000琥珀酸酯(TPGS)溶于大部分有机溶剂,和水有很好的溶解性。 长期保存需要在-20℃,避光,干燥条件下存放,注意取用一定要干燥,避免频繁的溶解和冻干。 维生素E聚乙二醇琥珀酸酯(简称TPGS)是维生素E的水溶性衍生物,由维生素E…...

【20230206-0209】哈希表小结
哈希表一般哈希表都是用来快速判断一个元素是否出现在集合里。哈希函数哈希碰撞--解决方法:拉链法和线性探测法。拉链法:冲突的元素都被存储在链表中线性探测法:一定要保证tableSize大于dataSize,利用哈希表中的空位解决碰撞问题。…...
c++11 标准模板(STL)(std::multimap)(一)
定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class multimap;(1)namespace pmr { template <class Key, class T…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...