关于dba_temp_free_space的allocated_space和free_space
每一个Oracle版本,都会有很多新特性和技术推出。这些技术特性,在很大程度上都能改进Oracle运行效率和应用效果,或者提高我们日
每一个Oracle版本,都会有很多新特性和技术推出。这些技术特性,在很大程度上都能改进Oracle运行效率和应用效果,或者提高我们日常工作能力。
Temp表空间是Oracle表空间体系中一种很特殊的表空间对象。临时表空间主要用于支持临时表空间使用、排序分组动作空间溢出暂存等作用。我们对Temp的使用,大都是局限在空间分配和大小设置上。在11g有,有一系列针对Temp表空间的新特性,可以很大程度上帮助我们工作。
视图dba_temp_free_space是11g引入的一个新视图,用于描述临时表空间使用情况。
--------------------------------------分割线 --------------------------------------
相关阅读:
Oracle Undo 镜像数据探究
Oracle 回滚(ROLLBACK)和撤销(Undo)
Undo 表空间损坏导致无法open
Undo表空间失败的处理方法
Oracle Undo表空间重建与恢复
--------------------------------------分割线 --------------------------------------
SQL> select * from dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE
--------------- --------------- --------------- ----------
TEMP 481296384 481296384 479199232
最近和一个朋友聊起其中allocated_space和free_space的含义,觉得很有意思。笔者决定通过一些实验来证明结论。
1、环境准备
笔者使用Oracle11gR2环境进行测试。
SQL> select * from v$version;
BANNER
------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
当前仅包括默认的Temp临时表空间。
SQL> select file_name, file_id, tablespace_name from dba_temp_files;
FILE_NAME FILE_ID TABLESPACE_NAME
------------------------------ ---------- ------------------------------
/u01/app/oradata/ORA11G/datafi 1 TEMP
le/o1_mf_temp_92t73qm8_.tmp
说明:为减少系统对实验结果影响,笔者创建全新的临时表空间,通过一系列的典型操作来,监控字段变化形态来证明实验结论。
2、表空间创建过程
首先我们创建临时表空间temptest。之前,我们检查磁盘空间空闲情况:
[oracle@SimpleLinux ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 24G 22G 52% /
tmpfs 6.0G 256M 5.8G 5% /dev/shm
/dev/mapper/VolGrp01-lv1
194M 5.6M 179M 4% /voltest01
当前/目录对应大小48G,使用24G,有22G可用空间。下面创建表空间:
SQL> create temporary tablespace temptest tempfile size 5G
2 extent management local uniform size 1m;
Tablespace created
和创建同样大小数据表空间相比起来,执行创建临时表空间语句速度很快。之后查看磁盘空间情况。
[oracle@SimpleLinux ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 48G 24G 22G 52% /
tmpfs 6.0G 256M 5.8G 5% /dev/shm
/dev/mapper/VolGrp01-lv1
194M 5.6M 179M 4% /voltest01
容量上没有任何变化,,如果Oracle创建了5G空间,至少会显示在磁盘大小上。但是,从Oracle内部注册体系和文件系统中,我们都是可以看到临时文件的生成。
SQL> select file_name, file_id, tablespace_name from dba_temp_files;
FILE_NAME FILE_ID TABLESPACE_NAME
------------------------------ ---------- ---------------
/u01/app/oradata/ORA11G/datafi 1 TEMP
le/o1_mf_temp_92t73qm8_.tmp
/u01/app/oradata/ORA11G/datafi 2 TEMPTEST
le/o1_mf_temptest_9j80859z_.tm
p
[oracle@SimpleLinux datafile]$ ls -l | grep temptest
-rw-r----- 1 oracle oinstall 5368717312 Feb 19 08:55 o1_mf_temptest_9j80859z_.tmp
这个是Oracle临时数据文件的特性,Oracle临时文件和数据文件不同,创建之后是不直接占满空间的。我们都有这样的经历,创建一个很大的数据表空间,create/add过程依据不同的系统IO情况,是很消耗时间的。但是临时文件不是,一个上十几G的临时文件可以在很快的创建成功。
但是,这个过程其实是“障眼法”。Oracle虽然创建了临时文件,文件系统中也分配显示大小文件,但是空间却没有真正的分配。这在一些文献中称为“稀疏文件”,文件架构范围都在,但是没有实际写入过程。TempFile中的allocated,也就与稀疏文件有关。
注意:这就告诉我们系统部署人员,要注意临时文件的这个特性,不要以为磁盘上有很多的空间。
此时,我们观察视图dba_temp_free_space,结果如下:
SQL> select * from dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE
--------------- --------------- --------------- ----------
TEMP 481296384 481296384 480247808
TEMPTEST 5368709120 1048576 5367660544
Tablespace_size为5368709120bytes大小,折合5G。这就是我们对临时表空间Temptest的定义值。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文探讨了Docker中的优化MySQL内存使用量。 它讨论了监视技术(Docker统计,性能架构,外部工具)和配置策略。 其中包括Docker内存限制,交换和cgroups

本文介绍了MySQL的“无法打开共享库”错误。 该问题源于MySQL无法找到必要的共享库(.SO/.DLL文件)。解决方案涉及通过系统软件包M验证库安装

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

本文比较使用/不使用PhpMyAdmin的Podman容器直接在Linux上安装MySQL。 它详细介绍了每种方法的安装步骤,强调了Podman在孤立,可移植性和可重复性方面的优势,还

本文提供了SQLite的全面概述,SQLite是一个独立的,无服务器的关系数据库。 它详细介绍了SQLite的优势(简单,可移植性,易用性)和缺点(并发限制,可伸缩性挑战)。 c

本指南展示了使用自制在MacOS上安装和管理多个MySQL版本。 它强调使用自制装置隔离安装,以防止冲突。 本文详细详细介绍了安装,起始/停止服务和最佳PRA

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]
