一、结论

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. Java异步记录日志-2022新项目

    一.业务场景 web项目开发中,经常会有的一个操作是记录请求日志,比如记录请求的IP地址,记录请求的路径,记录请求的参数等等. 每个系统都会根据自己的需要来记录一些请求相关的日志.一般会将记录的日志信 ...

  2. 小白之Python基础(四)

    条件判断和循环: 1.条件判断类型: 1)if语句:(注意:if中的条件如果是:非零数值.非空字符串.非空list等,就判断为True,否则为False.) 2)if-else语句: 3)if-eli ...

  3. 5.26 NOI 模拟

    \(T1\)石子与HH与HHの取 博弈是不可能会的 \(c_i\)相等,比较显然的\(Nim,\)直接前缀异或求一下 \(a_i=1,\)区间长度对\(2\)取模 结论\(:\)黑色石子严格大于白色个 ...

  4. 针对单个球体的World类

    好了,终于到了可以看到图片的环节了.之前的类,你一定要实现好了.所有关于World类的报错,现在我们一个一个解决来了. 先看看World类的声明: #pragma once #ifndef __WOR ...

  5. BMP位图之4位位图(二)

    起始结构 typedef struct tagBITMAPFILEHEADER { WORD bfType; //类型名,字符串"BM", DWORD bfSize; //文件大小 ...

  6. 解决前端向后端请求静态资源的问题(基于express框架)

    请求js,css,image资源: 前端 <script src='后端url/assets/js/xxx.js'>,<link href='后端url/assets/css/xxx ...

  7. 达人专栏 | 还不会用 Apache Dolphinscheduler?大佬用时一个月写出的最全入门教程【三】

    作者 | 欧阳涛 招联金融大数据开发工程师 02 Master启动流程 2.10 WorkFlowExecutorThread 里执行 Submit StandByTask 方法 SubmitStan ...

  8. Apache DolphinScheduler 2.0.1 来了,备受期待的一键升级、插件化终于实现

    ✎ 编 者 按:好消息!Apache DolphinScheduler 2.0.1 版本正式发布! 本版本中,DolphinScheduler 经历了一场微内核+插件化的架构改进,70% 的代码被重构 ...

  9. 映射问题,命名空间不能为空:org.apache.ibatis.builder.BuilderException : Mapper's namesapce cannot be empty

    今天配置Spring配置文件时,出现了以下的报错 倒数第三行,意思是Mapper的namespace(命名空间)不能为空 检查xml文件里映射文件是否配置,如果没有配置,那请添加映射文件,不然Spri ...

  10. DS二叉树——二叉树之数组存储

    题目描述 二叉树可以采用数组的方法进行存储,把数组中的数据依次自上而下,自左至右存储到二叉树结点中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点就在数组中用0来表示.,如下图所示 从上图可以看出 ...