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

批量占满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_idsql_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]
  1. SET AUTOTRACE ON

AUTOTRACE默认是关闭的,执行set autotrace on可以在当前session中开启autotrace。开启autotrace后,当前session中随后所有执行的SQL不仅会显示执行结果,还会显示SQL对应的执行计划和资源消耗情况。执行set autotrace off可以关闭autotrace。

  1. SET AUTOTRACE TRACEONLY

与SET AUTOTRACE ON相比,省略了SQL执行结果的具体内容,只会显示执行结果的行数、SQL执行计划和资源消耗情况。

  1. SET AUTOTRACE TRACEONLY EXPLAIN

只显示SQL的执行计划,不会显示SQL执行结果和资源消耗情况。

  1. SET AUTOTRACE TRACEONLY STATISTICS

只显示SQL执行时的资源消耗情况、以及执行结果的行数,不会显示SQL执行结果的具体内容,也不会显示执行计划。

相关文章:

批量占满TEMP表空间问题处理与排查

批量占满TEMP表空间问题处理与排查应急处置问题排查查看占用TEMP表空间高的SQL获取目标SQL执行计划方法一&#xff1a;EXPLAIN PLAN FOR方法二&#xff1a;DBMS_XPLAN.DISPLAY_CURSOR方法三&#xff1a;DBMS_XPLAN.DISPLAY_AWR方法四&#xff1a;AUTOTRACE数据库跑批任务占满TE…...

Pytorch中的tensor和variable

Tensor与Variable pytorch两个基本对象&#xff1a;Tensor&#xff08;张量&#xff09;和Variable&#xff08;变量&#xff09; 其中&#xff0c;tensor不能反向传播&#xff0c;variable可以反向传播&#xff08;forword&#xff09;。 反向传播是为了让神经网络更新前面…...

暗月内网渗透实战——项目七

首先环境配置 VMware的网络配置图 环境拓扑图 开始渗透 信息收集 使用kali扫描一下靶机的IP地址 靶机IP&#xff1a;192.168.0.114 攻击机IP&#xff1a;192.168.0.109 获取到了ip地址之后&#xff0c;我们扫描一下靶机开放的端口 靶机开放了21,80,999,3389,5985,6588端口…...

【Java 面试合集】描述下Objec类中常用的方法(未完待续中...)

描述下Objec类中常用的方法 1. 概述 首先我们要知道Object 类是所有的对象的基类&#xff0c;也就是所有的方法都是可以被重写的。 那么到底哪些方法是我们常用的方法呢&#xff1f;&#xff1f;&#xff1f; cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringw…...

SQLSERVER 的 truncate 和 delete 有区别吗?

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

【C++】CC++内存管理

就是你被爱情困住了&#xff1f;Wake up bro&#xff01; 文章目录一、C/C内存分布二、C语言中动态内存管理方式三、C中内存管理方式1.new和delete操作内置类型2.new和delete操作自定义类型&#xff08;仅限vs的底层实现机制&#xff0c;new和delete一定要匹配使用&#xff0c;…...

数据预处理之图像去空白

数据预处理之图像去空白图像去空白介绍方法边缘检测阈值处理形态学图像剪切图像去空白 介绍 图像去空白是指在图像处理中去除图像中的空白区域的过程。空白区域通常是指图像中的白色或其他颜色&#xff0c;其不包含有用的信息。去空白的目的是为了节省存储空间、提高图像处理…...

真的麻了,别再为难软件测试员了......

前言 有不少技术友在测试群里讨论&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了,考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些测试工程师了。 这不&#xff0c;为了帮大家节约时…...

2月9日,30秒知全网,精选7个热点

///货拉拉将推出同城门到门跑腿服务 据介绍&#xff0c;两轮电动车将成为该业务的主要运力&#xff0c;预计将于3月中旬全面开放骑手注册和用户人气征集活动&#xff0c;并根据人气和线上骑手注册情况选择落地城市&#xff0c;于4月正式开放服务和骑手接单 ///三菱、乐天和莱茵…...

球面坐标系下的三重积分

涉及知识点 三重积分球面坐标系点火公式一些常见积分处理手法 球面坐标系定义 球面坐标系由方位角φ\varphiφ、仰角θ\thetaθ和距离rrr构成 直角坐标系(x,y,z)(x,y,z)(x,y,z)到球面坐标系的(r,φ,θ)(r,\varphi,\theta)(r,φ,θ)的转化规则如下&#xff1a; {xrsin⁡φco…...

谷歌 Jason Wei | AI 研究的 4 项基本技能

文章目录 一、前言二、主要内容三、总结CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 原文作者为 Jason Wei,2020 年达特茅斯学院本科毕业,之后加入 Google Brain 工作。 Jason Wei 的博客主页:https://www.jasonwei.net/ 其实我不算是一个特别有经验的研究员…...

excel数据整理:合并计算快速查看人员变动

相信大家平时在整理数据时&#xff0c;都会对比数据是否有重复的地方&#xff0c;或者该数据与源数据相比是否有增加或者减少。数据量不大还好&#xff0c;数据量大的话&#xff0c;对比就比较费劲了。接下来我们将进入数据对比系列课程的学习。该系列一共有两篇教程&#xff0…...

vit-pytorch实现 MobileViT注意力可视化

项目链接 https://github.com/lucidrains/vit-pytorch 注意一下参数设置&#xff1a; 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精准帧率控制打气球小游戏

&#x1f386;音乐分享 New Boy —— 房东的猫 之前都用Sleep&#xff08;&#xff09;来控制画面帧率&#xff0c;忽略了绘制画面的时间 如果绘制画面需要很长的时间&#xff0c;那么就不能忽略了。 并且Sleep&#xff08;&#xff09;函数也不是特别准确&#xff0c;那么就…...

你知道 GO 中什么情况会变量逃逸吗?

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

一篇文章学懂C++和指针与链表

指针 目录 指针 C的指针学习 指针的基本概念 指针变量的定义和使用 指针的所占的内存空间 空指针和野指针 const修饰指针 指针和数组 指针和函数 指针、数组、函数 接下来让我们开始进入学习吧&#xff01; C的指针学习 指针的基本概念 指针的作用&#xff1a;可…...

TPGS-cisplatin顺铂修饰维生素E聚乙二醇1000琥珀酸酯

TPGS-cisplatin顺铂修饰维生素E聚乙二醇1000琥珀酸酯(TPGS)溶于大部分有机溶剂,和水有很好的溶解性。 长期保存需要在-20℃,避光,干燥条件下存放&#xff0c;注意取用一定要干燥,避免频繁的溶解和冻干。 维生素E聚乙二醇琥珀酸酯(简称TPGS)是维生素E的水溶性衍生物,由维生素E…...

【20230206-0209】哈希表小结

哈希表一般哈希表都是用来快速判断一个元素是否出现在集合里。哈希函数哈希碰撞--解决方法&#xff1a;拉链法和线性探测法。拉链法&#xff1a;冲突的元素都被存储在链表中线性探测法&#xff1a;一定要保证tableSize大于dataSize&#xff0c;利用哈希表中的空位解决碰撞问题。…...

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…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一&#xff1a;yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因&#xff0c;后面把yaml.safe_dump直接替换成yaml.dump&#xff0c;确实能保存&#xff0c;但出现乱码&#xff1a; 放弃yaml.dump&#xff0c;又切…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

数据分析六部曲?

引言 上一章我们说到了数据分析六部曲&#xff0c;何谓六部曲呢&#xff1f; 其实啊&#xff0c;数据分析没那么难&#xff0c;只要掌握了下面这六个步骤&#xff0c;也就是数据分析六部曲&#xff0c;就算你是个啥都不懂的小白&#xff0c;也能慢慢上手做数据分析啦。 第一…...