it编程 > 数据库 > Oracle

Oracle表空间管理怎么做?从原理到实操全解析

37人参与 2026-09-08 Oracle

在 oracle 11g 中,表空间(tablespace) 是数据库存储架构的核心逻辑单元,其原理基于 逻辑存储与物理存储的分离,通过分层管理数据文件、段(segment)、区(extent)和数据块(data block)。

1.逻辑存储与物理存储的映射

表空间是逻辑容器

数据文件是物理实体

create tablespace users 
datafile '/u01/oradata/users01.dbf' size 100m;

2.存储层次结构

 数据库(database) → 表空间(tablespace) → 段(segment) → 区(extent) → 数据块(data block)

段(segment)

区(extent)

数据块(data block)

3.表空间的空间管理

区(extent)的分配与回收

自动段空间管理(assm)

4.表空间类型与用途

表空间类型原理与用途
永久表空间存储用户数据(如表、索引),如 users。
临时表空间存储排序、哈希连接等临时数据,如 temp。
撤销表空间(undo)记录事务的撤销信息,支持回滚和一致性读,如 undotbs1。
大文件表空间单个数据文件可支持超大容量(最大 32tb),简化存储管理。

5.数据文件与表空间的关系

6.表空间的管理方式

字典管理表空间(过时)

本地管理表空间(默认)

7.数据块的结构

每个数据块包含以下部分:

8.关键原理总结

性能优化

事务一致性

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.常见问题与原理

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';

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

Oracle包是什么?包和包体创建步骤详解

09-08

Oracle数据库中锁等待与会话阻塞故障排查与解决

09-08

Oracle如何查询正在执行的语句、锁表、耗费资源的语句

09-08

Oracle包是什么?一文带你搞懂包的创建与使用

09-09

Oracle普通表改造分区表的方法汇总

09-06

Oracle merge into用法详解:如何同时更新插入删除数据

09-10

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论