oracle 表空间(Tablespace)
在 Oracle 11g 中,表空间(Tablespace) 是数据库存储架构的核心逻辑单元,其原理基于 逻辑存储与物理存储的分离,通过分层管理数据文件、段(Segment)、区(Extent)和数据块(Data Block)。
1. 逻辑存储与物理存储的映射
-
表空间是逻辑容器:用户创建的表、索引等对象存储在表空间中,但这些对象并不直接绑定到物理文件,而是通过表空间与数据文件(Data Files)关联。
-
数据文件是物理实体:每个表空间包含一个或多个物理数据文件(
.dbf
),数据实际存储在数据文件中。
CREATE TABLESPACE users
DATAFILE '/u01/oradata/users01.dbf' SIZE 100M;
2. 存储层次结构
数据库(Database) → 表空间(Tablespace) → 段(Segment) → 区(Extent) → 数据块(Data Block)
-
段(Segment):
表空间中存储的独立对象,如表段(TABLE
)、索引段(INDEX
)、撤销段(UNDO
)、临时段(TEMP
)。 -
区(Extent):
由连续的数据块组成的存储单元。当段需要更多空间时,Oracle 会分配新的区。 -
数据块(Data Block):
最小的 I/O 操作单位(默认大小 8KB),数据块大小由表空间定义。
3. 表空间的空间管理
-
区(Extent)的分配与回收:
-
当段需要空间时,Oracle 从表空间中分配一个或多个区。
-
删除对象时,区会被回收并标记为可用,但可能不会立即释放给操作系统(取决于存储参数)。
-
-
自动段空间管理(ASSM):
使用位图(Bitmap)管理区内的空闲空间,替代传统的手动自由列表(Free List),提高并发性能。
4. 表空间类型与用途
表空间类型 | 原理与用途 |
---|---|
永久表空间 | 存储用户数据(如表、索引),如 USERS 。 |
临时表空间 | 存储排序、哈希连接等临时数据,如 TEMP 。 |
撤销表空间(UNDO) | 记录事务的撤销信息,支持回滚和一致性读,如 UNDOTBS1 。 |
大文件表空间 | 单个数据文件可支持超大容量(最大 32TB),简化存储管理。 |
5. 数据文件与表空间的关系
-
一个表空间可以包含多个数据文件,数据文件分散在多个磁盘上以提高性能(如 RAID 或 ASM)。
-
数据文件支持自动扩展(
AUTOEXTEND ON
),避免因空间不足导致操作失败
6. 表空间的管理方式
-
字典管理表空间(过时):
使用数据字典表(如SYS.UET$
和SYS.FET$
)记录区的分配信息,存在性能瓶颈。 -
本地管理表空间(默认):
使用表空间头部存储的位图管理区的分配,效率更高,减少数据字典争用。
7. 数据块的结构
每个数据块包含以下部分:
-
块头(Header):块元数据(如事务信息、SCN)。
-
表目录(Table Directory):记录块中存储的表信息。
-
行目录(Row Directory):指向块内各行数据的指针。
-
空闲空间(Free Space):未使用的空间,用于新数据或更新操作。
8. 关键原理总结
-
逻辑与物理分离:用户操作逻辑对象(如表),Oracle 自动管理物理文件。
-
存储层次化:通过段、区、数据块实现精细的空间管理。
-
性能优化:
-
将高 I/O 的表空间(如索引、数据)分散到不同磁盘。
-
使用临时表空间减少对永久表空间的争用。
-
-
事务一致性:UNDO 表空间支持多版本读一致性和事务回滚。
9. 示例:表空间操作
-- 创建表空间
CREATE TABLESPACE app_data
DATAFILE '/u01/oradata/app01.dbf' SIZE 500M
AUTOEXTEND ON NEXT 50M MAXSIZE 2G;-- 将表分配到表空间
CREATE TABLE orders (order_id NUMBER,customer_id NUMBER
) TABLESPACE app_data;-- 查询表空间使用情况
SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb
FROM dba_data_files;
10. 常见问题与原理
-
空间不足:数据文件未自动扩展或达到
MAXSIZE
,导致 ORA-01653 错误。 -
碎片化:频繁分配和释放区可能导致碎片,影响性能(本地管理表空间较少出现)。
-
备份与恢复:表空间级备份(
TABLESPACE
)比全库备份更灵活,支持热备份。
11. 查询表所属的表空间
SELECT owner, table_name, tablespace_name FROM dba_tables WHERE table_name = 'AI_TOOLS' AND owner = 'NEW_USER';
12.查询表空间对应的数据文件路径
SELECT file_name FROM dba_data_files WHERE tablespace_name = 'USERS';
相关文章:
oracle 表空间(Tablespace)
在 Oracle 11g 中,表空间(Tablespace) 是数据库存储架构的核心逻辑单元,其原理基于 逻辑存储与物理存储的分离,通过分层管理数据文件、段(Segment)、区(Extent)和数据块&…...
Git 高级操作
Git不仅是代码管理的基石工具,更是开发者提升效率的瑞士军刀。掌握基础操作只是起点,真正的高手都在使用进阶技巧优化工作流。本文将深入解析Git四大高阶操作,助你轻松应对复杂开发场景! 一、交互式暂存:精准控制提交粒…...
Go:程序结构
文章目录 名称声明变量短变量声明指针new 函数变量的生命周期 赋值多重赋值可赋值性 类型声明包和文件导入包初始化 作用域 名称 命名规则: 通用规则:函数、变量、常量、类型、语句标签和包的名称,开头须是字母(Unicode 字符 &a…...
sqlserver2017 分离附加数据库
分离数据库 分离数据库是指将数据库从 SQL Server 实例中移除,但会完整保留数据库及其数据文件和事务日志文件。 然后可以使用这些文件将数据库附加到任何 SQL Server 实例,包括分离该数据库的服务器。 如果存在下列任何情况,则不能分离数据…...
QuarkPi-CA2 RK3588S卡片电脑:6.0Tops NPU+8K视频编解码+接口丰富,高性能嵌入式开发!
QuarkPi-CA2 RK3588S卡片电脑:6.0Tops NPU8K视频编解码接口丰富,高性能嵌入式开发! 芯片框架 视频介绍 https://www.bilibili.com/video/BV1btdbYkEjY 开发板介绍 核心升级,产品炸裂 QuarkPi-CA2卡片电脑搭载瑞芯微RK3588S芯片…...
对称加密与非对称加密与消息摘要算法保证https的数据交互的完整性和保密性
一、对称加密与非对称加密的作用 1. 对称加密 作用: 保密性:对称加密使用相同的密钥对数据进行加密和解密,确保数据在传输过程中不被窃听。效率:对称加密算法(如AES)计算速度快,适合加密大量数…...
Lab Cloud FPGA 硬件在线实验云平台介绍
友晶科技依托其在FPGA技术领域的深厚积累,成功研发出了一套完整的FPGA云平台解决方案(即FPGA 硬件在线实验云,简称LabCloud )。LabCloud 是一个高效、实用的学习平台,目前已在多个学校成功部署。 LabCloud 是通过 B/S …...
相机回调函数为静态函数原因
在注册相机SDK的回调函数时,是否需要设置为静态函数取决于具体SDK的设计要求,但通常需要遵循以下原则: 1. 必须使用静态函数的情况 当相机SDK是C语言接口或要求普通函数指针时,回调必须声明为静态成员函数或全局函数:…...
实验室纯水器实验室超纯水机(常见类型、选型建议、维护保养)
不同实验室用水级别有何差异? 实验室用水级别由ASTM或ISO 3696等质量标准定义,有助于特定应用选择适合的水质。这些标准也考虑了生产成本,如1级(Type 1)超纯水的生产成本远高于2级(Type 2)或3级(Type 3)纯水。 1级超纯水 不含离子ÿ…...
腾讯云COS与ZKmall 开源商城的存储集成方案
ZKmall 开源商城与腾讯云对象存储(COS)的集成,可通过云端资源托管、自动化数据同步、高性能存储架构实现本地存储负载降低与访问效率提升。以下是基于搜索结果的集成路径与核心优化点: 一、存储架构升级:本地与云端协同…...
Python 深度学习实战 第3章 Keras和TensorFlowKeras 训练和评估模型实例
Python 深度学习实战 第3章 Keras和TensorFlow&Keras 训练和评估模型实例 内容概要 第3章介绍了Keras和TensorFlow的基本概念及其关系,并指导如何设置深度学习工作区。本章还概述了核心深度学习概念如何转化为Keras和TensorFlow API。通过本章,读者…...
基于SpringBoot的动物救助中心系统(源码+数据库)
500基于SpringBoot的动物救助中心系统,本系统共分为2个角色:系统管理员、用户,主要功能如下 【管理员】: 1. 登录:管理员可以通过登录系统来管理各种功能。 2. 用户管理:管理员可以查看用户列表࿰…...
【多模态大模型】《Qwen2.5-Omni》 论文解读
《Qwen2.5-Omni:重新定义端到端全模态大模型的技术范式》 论文解读 论文: https://arxiv.org/abs/2503.20215 (2025.03.26)代码: https://github.com/QwenLM/Qwen2.5-OmniNews: https://mp.weixin.qq.com/…...
go 通过汇编分析函数传参与返回值机制
文章目录 概要一、前置知识二、汇编分析2.1、示例2.2、汇编2.2.1、 寄存器传值的汇编2.2.2、 栈内存传值的汇编 三、拓展3.1 了解go中的Duff’s Device3.2 go tool compile3.2 call 0x46dc70 & call 0x46dfda 概要 在上一篇文章中,我们研究了go函数调用时的栈布…...
蓝桥杯C/C++省赛/国赛注意事项及运行环境配置
大佬的蓝桥杯考前急救指南 对拍(手动生成测试数据)代码: #include <bits/stdc.h> // 包含所有标准库的头文件 using namespace std; // 使用标准命名空间int main() {srand(time(0)); // 设置随机数种子为当前时间,确保每次…...
CSS高度坍塌?如何解决?
一、什么是高度坍塌? 高度坍塌(Collapsing Margins)是指当父元素没有设置边框(border)、内边距(padding)、内容(content)或清除浮动时,其子元素的 margin 会…...
redis的基本使用
简介 redis,Remote Dictionary Server,远程字典服务,一个基于内存的、存储键值对的数据库。redis是开源的,使用C语言编写。因为redis的数据是存储在内存中的,所以redis通常被用来做数据库的缓存 优点: re…...
【蓝桥杯】单片机设计与开发,第十二届
/*头文件声明区*/ #include <STC15F2K60S2.H>//单片机寄存器头文件 #include <init.h>//初始化底层驱动头文件 #include <led.h>//led,蜂鸣器,继电器底层驱动头文件 #include <key.h>//按键底层驱动头文件 #include <seg.h>//数码管底层驱动头…...
主流时序数据库深度对比:TDengine、InfluxDB与IoTDB的技术特性、性能及选型考量
目录 引言 一、 核心架构与技术特性对比 1.1、 TDengine:面向物联网的特定优化 1.2. InfluxDB:成熟的通用时序平台 1.3. Apache IoTDB:面向工业场景的精细化设计 二、 核心性能指标对比分析 2.1、写入性能 2.2、查询性能 三、 关键技…...
使用人工智能大模型腾讯元宝,如何免费快速做高质量的新闻稿?
今天我们学习使用人工智能大模型腾讯元宝,如何免费快速做高质量的新闻稿? 手把手学习视频地址:https://edu.csdn.net/learn/40402/666431 第一步在腾讯元宝对话框中输入如何协助老师做新闻稿,通过提问,我们了解了老师…...
国产Linux系统统信安装redis教程步骤
系统环境 uname -a Linux FlencherHU-PC 6.12.9-amd64-desktop-rolling #23.01.01.18 SMP PREEMPT_DYNAMIC Fri Jan 10 18:29:31 CST 2025 x86_64 GNU/Linux官网下载源码包并解压 下载链接 https://download.redis.io/releases/redis-7.0.15.tar.gz?_gl11h424d3_gcl_au*ODQ5…...
leetcode590 N叉树的后序遍历
前序遍历 的顺序是:根 → 子节点1 → 子节点2 → ... → 子节点N 后序遍历 的顺序是:子节点1 → 子节点2 → ... → 子节点N → 根 首先一个办法就是前序遍历结果进行翻转 在 迭代法 实现 后序遍历 时,如果采用 前序遍历 反转 的方式&…...
docker desktop 的安装和使用
一、Docker Desktop 是什么? Docker Desktop 是一款专为开发者设计的工具,可以在本地计算机(Windows/macOS)上快速运行和管理容器(Container)环境。以下是核心功能: 核心特点说明容器化开发基于…...
QCustomPlot频谱图
使用QCutomPlot做的读取txt文件显示频谱图的demo,帮助大家了解QCustomPlot的基本使用 1.运行结果 demo比较简单,用于文件读取,鼠标放大缩小,右键截图等基础功能. 2.绘图详解 绘图核心是将类提升为QCustomPlot之后进行重绘,重绘之前设计图表曲线,图标标题,坐标轴,坐标轴范围,背…...
Python 和 JavaScript两种语言的相似部分-由DeepSeek产生
Python 和 JavaScript 作为两种流行的编程语言,虽然在设计目标和应用场景上有差异(Python 偏向后端和脚本,JavaScript 偏向前端和动态交互),但它们的语法存在许多相似之处。以下是两者在语法上的主要共同点及对比&…...
记一次 .NET某云HIS系统 CPU爆高分析
一:背景 1. 讲故事 年前有位朋友找到我,说他们的系统会偶发性的CPU爆高,有时候是爆高几十秒,有时候高达一分多钟,自己有一点分析基础,但还是没找到原因,让我帮忙看下怎么回事? 二&…...
ESP32开发入门:基于VSCode+PlatformIO环境搭建指南
前言 ESP32作为一款功能强大的物联网开发芯片,结合PlatformIO这一现代化嵌入式开发平台,可以大幅提升开发效率。本文将详细介绍如何在VSCode中搭建ESP32开发环境,并分享实用开发技巧。 一、环境安装(Windows/macOS/Linux…...
在 macOS 上设置来电自启动
在 macOS 中,系统本身并不支持直接通过“接上电源适配器”自动开机(此功能涉及硬件底层控制)。但针对 Intel 处理器的 Mac 机型,可以通过以下方法间接实现类似效果。对于 Apple Silicon(M1/M2/M3)芯片的 Ma…...
【技术】Ruby 生态概念速查表,通过对比nodejs生态(入门)
以下是 Ruby 生态 对应概念的速查表,并使用与 Node.js 生态 对比的方式来参照,涵盖名称、作用(或解释)、简单用法、可能的替代方案,以及 Node.js 中最相似或可类比的工具(如果有的话)。有些工具…...
入门级宏基因组数据分析教程,从实验到分析与应用
宏基因组学彻底改变了研究人员对微生物群落的认识,微生物组不仅是环境组分,更作为共生体深刻影响着宿主的健康与功能。 鉴于微生物群落固有的复杂性及其所处环境的多样性,研究者进行一些宏基因组学研究时必须精心设计以获取能真实反映目标群体…...
解决 Vue 中 input 输入框被赋值后,无法再修改和编辑的问题
目录 需求: 出现 BUG: Bug 代码复现 解决问题: 解决方法1: 解决方法2 关于 $set() 的补充: 需求: 前段时间,接到了一个需求:在选择框中选中某个下拉菜单时,对应的…...
聚划算!CNN-GRU、CNN、GRU三模型多变量回归预测
聚划算!CNN-GRU、CNN、GRU三模型多变量回归预测 目录 聚划算!CNN-GRU、CNN、GRU三模型多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 聚划算!CNN-GRU、CNN、GRU三模型多变量回归预测 (Matlab2023b 多输入单输出) 1.程…...
list的常见接口使用
今天,我们来讲解一下C关于STL标准库中的一个容器list的常见接口。 在我们之前c语言数据结构中,我们已经了解过了关于链表的知识点了,那么对于现在理解它也是相对来说比较容易的了。 数据结构--双向循环链表-CSDN博客 1. 定义与包含头文件 …...
5. 蓝桥公园
题目描述 小明喜欢观景,于是今天他来到了蓝桥公园。 已知公园有 N 个景点,景点和景点之间一共有 M 条道路。小明有 Q 个观景计划,每个计划包含一个起点 stst 和一个终点 eded,表示他想从 stst 去到 eded。但是小明的体力有限&am…...
零基础开始学习鸿蒙开发-智能家居APP离线版介绍
目录 1.我的小屋 2.查找设备 3.个人主页 前言 好久不发博文了,最近都忙于面试,忙于找工作,这段时间终于找到工作了。我对鸿蒙开发的激情依然没有减退,前几天做了一个鸿蒙的APP,现在给大家分享一下! 具体…...
你的 Linux 服务器连不上网?10 分钟入门网络故障排查
问题现象:服务器突然失去网络连接 当你兴冲冲地打开终端,准备开始一天的开发工作时,却发现服务器无法连接网络,ifconfig命令只能看到本地环回接口(lo)。这种突如其来的网络中断可能会让很多Linux新手感到手足无措。 别担心&…...
《Vue Router实战教程》20.路由懒加载
欢迎观看《Vue Router 实战(第4版)》视频课程 路由懒加载 当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件&am…...
JVM 之 String 引用机制解析:常量池、堆内存与 intern 方法
案例一: String s1 new String("1"); String s2 "1"; System.out.println(s1 s2);s1: 执行 new String("1"),JVM 首先在字符串常量池中查找或添加字面量 "1",然后在堆内存中新建一个内容为 &quo…...
如何在 Mac 上安装 Python
所有最新的 MacOS(从 macOS 12.3 开始)都预装了 Python 版本(通常是 Python 2.x),但它已经过时并且不再受支持。要充分利用 Python 的功能,您需要安装最新版本的 Python。 本文提供了分步教程,展…...
无锡东亭无人机培训机构电话
无锡东亭无人机培训机构电话,随着科技的迅猛发展,无人机逐渐走入我们的生活和工作领域,成为多种行业中不可或缺的工具。而在其广泛的应用中,如何正确、熟练地操控无人机成为了关键。因此,找到一家专业的无人机培训机构…...
WPS复制粘贴错误 ,文件未找到 mathpage.wll
文章目录 1.错误提示图片2.解决方案1.找到MathType.wll文件和MathType Commands 2016.dotm文件并复制2.找到wps安装地址并拷贝上述两个文件到指定目录 3.重启WPS 1.错误提示图片 2.解决方案 1.找到MathType.wll文件和MathType Commands 2016.dotm文件并复制 MathType.wll地址如…...
蓝桥杯单片机刷题——按键设置当前采集距离为距离参数
设计要求 驱动超声波传感器,启动距离测量功能,并将其结果显示到数码管上。 按键“S5”定义为参数按键,按下S5按键,设备自动将当前采集的距离数据作为距离参数; 若测量的距离数据超过距离参数,指示灯L1点亮ÿ…...
mybaties plus 更新null值进入数据库
(数据库一定要支持字段为null值) 问题: 假设我现在数据库里有一个值是1,这个字段允许为null。 目前我使用的是的mybaties plus,我希望将这个值更新weinull,如何操作? 提示:如果直接…...
VSCode优雅的使用debug
原始用法:(这里不使用) 配置launch.json,里面传入参数然后debug,这里我们通常需要传入的参数比较多,而且经常修改参数,直接去修改launch.json会比较麻烦,所以使用sh脚本比较方便。 {// Use IntelliSense to…...
优化你的 REST Assured 测试:设置默认主机与端口、GET 请求与断言
REST Assured 是一个功能强大的 Java 库,用于测试 RESTful Web 服务。它简化了 API 测试流程,提供了一整套用于高效验证响应的工具。在本篇博客中,我们将深入探讨几个核心概念,包括如何设置默认主机和端口、如何发起 GET 请求以及…...
JVM之String创建、拼接
一、字符串创建的两种方式 1. 字面量直接赋值 String s1 "a"; 过程: JVM 检查字符串常量池中是否存在 "a"。若存在,直接返回常量池中的引用。若不存在,在常量池中创建 "a",返回其引用。 特点&a…...
UE5 模仿生存建造类游戏创建的过程
一、大概流程如下 点击界面按钮生成Actor->移动鼠标Actor的位置随着鼠标移动移动->点击鼠标左键确定Actor的位置 使用了盒体检测GetWorld()->SweepSingleByChannel()函数检测是否发生碰撞通过 FCollisionQueryParams CollisionParams;CollisionParams.AddIgnoredAc…...
大模型在慢性髓细胞白血病(CML)初治成人患者诊疗中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与 CML 相关知识 2.1 大模型技术原理与特点 2.2 CML 的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模型预测术前风险 3.3 根据预测…...
汽车性能的幕后保障:慧通测控电动尾翼综合力学测试浅析
在汽车性能不断追求极致的当下,电动尾翼已成为众多高性能车型以及部分新能源汽车提升空气动力学表现与操控稳定性的关键配置。从炫酷的超跑到注重续航与驾驶体验的新能源车,电动尾翼正逐渐崭露头角。它绝非仅仅是外观上的装饰,而是能在车辆行…...
动力电池自动点焊机:新能源汽车制造的智能焊接利器
在新能源汽车产业蓬勃发展的今天,动力电池作为其核心部件,其性能与安全性直接关系到整车的续航里程和使用寿命。而动力电池的制造过程中,焊接工艺是至关重要的一环。这时,动力电池自动点焊机便以其高效、精准、智能的特点…...