批量占满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…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
