一、结论

dba_segments指定表名查询到的段大小包含索引、约束、表字段数据(包含LOB字段)
(1)表(不包含LOB字段)创建默认分配2个簇,1个簇用于存放表结构及字段数据,1个簇用于存放cluster类型的索引
(2)创建索引默认会分配2个簇,用于存放normal索引数据
(3)创建约束不会额外分配空间,除非是主键或唯一约束
(4)添加LOB字段默认分配2个簇,用于存放lob字段数据
(5)表(包含LOB字段)创建默认分配4个簇,1个簇用于存放表结构及字段数据,1个簇用于存放cluster类型的索引,2和簇用于存放lob字段数据

二、测试过程

(一)创建测试表,查看初始大小

create table test01(id number,name varchar2(10));

SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST01';

OWNER  SEGMENT_NAME BYTES                BLOCKS               EXTENTS              INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST01 2097152 64 2 1048576 SQL> select owner,index_name,index_type,initial_extent from dba_indexes where owner='SYSDBA' and table_name='TEST01'; OWNER INDEX_NAME INDEX_TYPE INITIAL_EXTENT
------ ------------- ---------- --------------
SYSDBA INDEX33566761 CLUSTER 1 SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name in('INDEX33566761');
未选定行

(二)添加索引,查看空间变化

create index idx_test01_name on test01(name);

SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST01';

OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST01 4194304 128 4 1048576 SQL> select owner,index_name,index_type,initial_extent from dba_indexes where owner='SYSDBA' and table_name='TEST01'; OWNER INDEX_NAME INDEX_TYPE INITIAL_EXTENT
------ --------------- ---------- --------------
SYSDBA INDEX33566761 CLUSTER 1
SYSDBA IDX_TEST01_NAME NORMAL 1 SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name in('INDEX33566761','IDX_TEST01_NAME'); OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ --------------- -------------------- -------------------- -------------------- --------------------
SYSDBA IDX_TEST01_NAME 2097152 64 2 1048576

(三)添加主键,查看空间变化

alter table test01 add constraint pk_test01_id primary key(id);

SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST01';

OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST01 6291456 192 6 1048576 SQL> select owner,index_name,index_type,initial_extent from dba_indexes where owner='SYSDBA' and table_name='TEST01'; OWNER INDEX_NAME INDEX_TYPE INITIAL_EXTENT
------ --------------- ---------- --------------
SYSDBA INDEX33566761 CLUSTER 1
SYSDBA INDEX33566763 NORMAL 1
SYSDBA IDX_TEST01_NAME NORMAL 1 SQL> select constraint_name,constraint_type,status,index_name from dba_constraints where owner='SYSDBA' and table_name='TEST01'; CONSTRAINT_NAME CONSTRAINT_TYPE STATUS INDEX_NAME
--------------- --------------- ------- -------------
PK_TEST01_ID P ENABLED INDEX33566763 SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name in('INDEX33566761','IDX_TEST01_NAME','INDEX33566763'); OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ --------------- -------------------- -------------------- -------------------- --------------------
SYSDBA IDX_TEST01_NAME 2097152 64 2 1048576
SYSDBA INDEX33566763 2097152 64 2 1048576

(四)创建约束,查看空间变化

alter table test01 add constraint ck_test01_id check(id>=1);

SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST01';

OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST01 6291456 192 6 1048576 SQL> select constraint_name,constraint_type,status,index_name from dba_constraints where owner='SYSDBA' and table_name='TEST01'; CONSTRAINT_NAME CONSTRAINT_TYPE STATUS INDEX_NAME
--------------- --------------- ------- -------------
CK_TEST01_ID C ENABLED NULL
PK_TEST01_ID P ENABLED INDEX33566763

(五)增加lob列和普通列,查看空间变化

alter table test01 add content clob;

SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST01';

OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST01 8388608 256 8 1048576 alter table test01 add city varchar2(10); SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST01'; OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST01 8388608 256 8 1048576 SQL> select id,name,crtdate from sysobjects where name='TEST01' and schid in(select id from sysobjects where name='SYSDBA' and type$='SCH'); ID NAME CRTDATE
----------- ------ --------------------------
5751 TEST01 2022-02-22 14:55:03.347000 SQL> SELECT TABLE_USED_LOB_PAGES('SYSDBA','TEST01'); TABLE_USED_LOB_PAGES('SYSDBA','TEST01')
---------------------------------------
6 ---这个返回的是数据块,2个簇实际在用的数据块数量只有6个

(六)创建包含LOB字段的表

SQL> create table test02(id number,name varchar2(10),content clob);
SQL> select owner,segment_name,bytes,blocks,extents,initial_extent from dba_segments where owner='SYSDBA' and segment_name='TEST02'; OWNER SEGMENT_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT
------ ------------ -------------------- -------------------- -------------------- --------------------
SYSDBA TEST02 4194304 128 4 1048576

达梦dba_segments指定表名查询到的大小都包含哪些数据的更多相关文章

  1. C# 一次查询多表,填充DataSet并指定表名

    lhrhi 原文 NET 一次查询多表,填充DataSet并指定表名(DataSet指定DataTable名称的技巧) 现实中的场景,有时可能需要一次查询数据库中表张.在使用SqlDataAdapte ...

  2. Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)

    一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...

  3. ms sql 根据表名查询 表中所有字段的属性值 sql语句

    SELECT表名=case when a.colorder=1 then d.name else '' end,--表说明=case when a.colorder=1 then isnull(f.v ...

  4. Mysql/Oracle/达梦中数据字典表

    在mysql中,数据字典表存放在information_schema库中,,对应的两张表,分别是TABLES,和COLUMNS. 在oracle中有表空间(即用户空间或者库)和模式的概念.模式和表空间 ...

  5. MYSQL中只知表名查询属于哪个SCHEMA

    只知道表名XXX查该表属于哪个schema.以及该表有哪些列等信息 SELECT * from information_schema.columns WHERE table_name = 'xxx'; ...

  6. PCB MS SQL 通过表名查询各字段信息和vb.net C# module类代码

    正式表:各字段内容获取 ) SET @tabname = 'ppeflow' SELECT @tabname AS '表名' ,(CASE ))+ ')' )) ) )) + ')' )) ) )) ...

  7. Oracle 创建用户,赋予指定表名/视图只读权限

    步骤指南 创建用户 格式:; 语法:create user 用户名 identified by 密码; 注:密码不行的话,前后加(单引号):' create user TEST identified ...

  8. oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全

          表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库. 全部的数据库对象都存放在建立指定的表空间中.但主要存放的是表, 所以称作表空间.在oracle 数据库中至少存在一个表空间.即S ...

  9. PL/SQL Developer实现双击table表名查询

    双击table默认为Expand/Collapse 展开/折叠 有时需快速查看该表数据,如果写select * from tab会显得麻烦, 我们可实现双击table来进行快速查询 方法为:Tools ...

随机推荐

  1. 丽泽普及2022交流赛day19 半社论

    目录 No Problem Str Not TSP 题面 题解 代码 Game 题面 题解 代码 No Problem 暴力 Str 存在循环节,大力找出来即可,长度显然不超过 \(10^3\) . ...

  2. AI全流程开发难题破解之钥

    摘要:通过对ModelArts.盘古大模型.ModelBox产品技术的解读,帮助开发者更好的了解AI开发生产线. 本文分享自华为云社区<[大厂内参]第16期:华为云AI开发生产线,破解AI全流程 ...

  3. 5.27 NOI 模拟

    \(T1\)约定 比较水的\(dp\)题 上午想到了用区间\(dp\)求解,复杂度\(O(n^5),\)貌似没开\(long\ long\)就爆掉了 正解还是比较好想的,直接枚举从何时互不影响然后转移 ...

  4. 如何成为一名合格的Apache项目Committer,参与Apache开源贡献的正确姿势

    近日,孙金城老师在 "Open Source Promotion Plan - Summer 2020" 开源软件供应链点亮计划做了<如何成为一名合格的Apache项目Com ...

  5. 面试突击77:Spring 依赖注入有几种?各有什么优缺点?

    IoC 和 DI 是 Spring 中最重要的两个概念,其中 IoC(Inversion of Control)为控制反转的思想,而 DI(Dependency Injection)依赖注入为其(Io ...

  6. Mybatis中多对一与一对多

    多对一的处理 在pojo中就有 Student private String name; private String id; private Teacher teacher; 比如说多个学生对应着一 ...

  7. Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发

    一.REST简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描 ...

  8. docker-compose概述--翻译

    Overview of Docker Compose 译文 Docker Compose 是一个用来定义和执行多Docker容器程序的工具,如果使用Compose,你将可以使用一个YAML文件来配置你 ...

  9. 【Vue学习笔记】—— vue的基础语法 { }

    学习笔记 作者:oMing vue v-on: 简称 @ <div id='app'> <button v-on:click='Show1'> </button> ...

  10. CMU 15-445 Project 0 实现字典树

    原文链接:https://juejin.cn/post/7139572163371073543 项目准备 代码.手册 本文对应 2022 年的课程,Project 0 已经更新为实现字典树了.C++1 ...