达梦dba_segments指定表名查询到的大小都包含哪些数据[亲测有效]

达梦dba_segments指定表名查询到的大小都包含哪些数据[亲测有效]一、结论 dba_segments指定表名查询到的段大小包含索引、约束、表字段数据(包含LOB字段)(1)表(不包含LOB字段)创建默认分配2个簇,1个簇用于存放表结构及字段数据,1个簇用于存放clu

达梦dba_segments指定表名查询到的大小都包含哪些数据

一、结论

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

原文地址:https://www.cnblogs.com/huzei/archive/2022/10/13/16788546.html

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

(0)
上一篇 2023-06-10
下一篇 2023-06-10

相关推荐

  • Redis复制「建议收藏」

    Redis复制「建议收藏」复制:slaveof {masterHost} {masterPort} 注: 任何针对主节点的操作都会同步到从节点 断开复制时从节点数据不会消失且自动升级为主节点,通过上述slaveof命令也可以…

    2023-03-31
    151
  • Redis安装及配置文件说明[通俗易懂]

    Redis安装及配置文件说明[通俗易懂]安装环境及redis版本:Centos 7、Redis-5.0.5 一、安装redis 下载redis wget http://download.redis.io/releases/redis-5….

    2022-12-15
    139
  • 使用Python制作简单的休息提醒程序

    使用Python制作简单的休息提醒程序随着计算机和手机的广泛使用,长时间的工作或使用电子设备已经成为了现代人的常态。长时间的使用电子设备会让我们的身体和眼睛感到疲劳,而长时间的工作会让我们的身体处于高负荷的状态,这都会对我们的健康造成一定的影响。所以,在我们的工作和使用电子设备的时候,最好能够定时地休息一下,来缓解身体的疲劳。如何做到定时休息呢?这篇文章中,我们将介绍如何使用Python制作一个简单的休息提醒程序,以便我们在工作或使用电脑的时候能够定时休息。

    2023-12-17
    102
  • Redis学习笔记(十六) Sentinel(哨兵)(下)

    Redis学习笔记(十六) Sentinel(哨兵)(下)消失了一段时间,我又回来啦。不多说,继续把哨兵看完。 检测主观下线状态 默认情况下,Sentinel会以每秒一次的频率向所有与他创建了命令连接的实例(主从服务器以及其他Sentinel)发送PING命

    2023-03-09
    137
  • IM及时通讯软件openfire+mysql+openldap+spark

    IM及时通讯软件openfire+mysql+openldap+spark业务场景:对于安全注重和可控性更强的企业,自己搭建聊天系统是很多企业选择,功能大概类似微信,QQ,阿里旺旺等,目前及时通讯软件很多,比如商业的腾讯通,开源的基于XMPP开源协议的也很多,但是发现国内…

    2023-03-25
    147
  • SQL Pretty Printer 一款值得你拥有的MSSQL格式化插件

    SQL Pretty Printer 一款值得你拥有的MSSQL格式化插件各位码农小伙伴们,在使用MSSQL编辑器时候是否觉得没有一款格式化工具,写出来的代码很不美观,在团队中,做code review时候,每个人风格不一,对比不够直接呢? 我给大家推荐一款SQL Pret

    2023-02-22
    133
  • c++从文件中读取数据到数组_initlist函数

    c++从文件中读取数据到数组_initlist函数10年前,我写了第一个CLR存储过程在SQL Server里,10年后,我又写了一个。 我花了1个小时才找到如何创建CLR项目…… 创建C# CLR项目的地方变了,在VS 2010里有专门的项目模板:

    2023-02-14
    160
  • Python中exp的神奇力量:快速计算指数函数

    Python中exp的神奇力量:快速计算指数函数在Python中,我们可以使用import math语句来导入math库,其中包含了一个常量e,即自然对数的底数:

    2024-02-21
    135

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注