Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

DM_DBA(达梦7用户使用手册) PDF 下载


分享到:
时间:2020-06-23 17:32来源:http://www.java1234.com 作者:小锋  侵权举报
DM_DBA(达梦7用户使用手册) PDF 下载
失效链接处理
DM_DBA(达梦7用户使用手册) PDF 下载


本站整理下载:
 
相关截图:
 
主要内容:

第一部分 数据库体系架构
第 1 章 DM 逻辑结构概述
1.1 数据库和实例
在 DM7 之前版本的 DM 数据库中,“数据库”和“实例”这两个术语经常可以互相替换,意
义也很相近。在新版本 DM7 数据库中,“数据库”和“实例”这两个概念之间有着很大的差别,
甚至可以说它们是两个完全不同的实体。
1.1.1 数据库
在有些情况下,数据库的概念包含的内容会很广泛。如在单独提到 DM 数据库时,可能
指的是 DM 数据库产品,也有可能是正在运行的 DM 数据库实例,还可能是 DM 数据库运行中
所需的一系列物理文件的集合等。但是,当同时出现 DM 数据库和实例时,DM 数据库指的是
磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及
临时数据文件等。
1.1.2 实例
实例一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。简单来
说,实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集
合。
DM 数据库存储在服务器的磁盘上,而 DM 实例则存储于服务器的内存中。通过运行 DM
实例,可以操作 DM 数据库中的内容。在任何时候,一个实例只能与一个数据库进行关联(装
载、打开或者挂起数据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。但
是在即将提供的 DM 共享磁盘高性能集群中,多个实例可以同时装载并打开一个数据库(位
于一组由多台服务器共享的物理磁盘上)。此时,我们可以同时从多台不同的计算机访问这个
数据库。
1.2 DM 逻辑存储结构
DM 数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。在 DM 数据库内
部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都
存放在这些表空间中。同时,表空间被进一步划分为段、簇和页(也称块)。通过这种细分,
可以使得 DM 数据库能够更加高效地控制磁盘空间的利用率。图 1.1 显示了这些数据结构之
间的关系。
第 1 章 DM 逻辑结构概述
图 1.1 显示表空间、数据文件、段、簇、页的关系
可以看出,在 DM7 中存储的层次结构如下:
1. 数据库由一个或多个表空间组成;
2. 每个表空间由一个或多个数据文件组成;
3. 每个数据文件由一个或多个簇组成;
4. 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
5. 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
6. 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。
1.2.1 表空间
在 DM 数据库中,表空间由一个或者多个数据文件组成。DM 数据库中的所有对象在逻辑
上都存放在表空间中,而物理上都存储在所属表空间的数据文件中。
在创建 DM 数据库时,会自动创建 5 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN
表空间、TEMP 表空间和 HMAIN 表空间。
1. SYSTEM 表空间存放了有关 DM 数据库的字典信息,同时还可以用来存放用户数据
(这需要用户指定,不建议这么做),用户也可以手工创建其他表空间来存放用户
数据。
2. ROLL 表空间完全由 DM 数据库自动维护,用户无需干预。该表空间用来存放事务运
行过程中执行 DML 操作之前的值,从而为访问该表的其他用户提供表数据的读一致
性视图。
3. MAIN 表空间在初始化库的时候,就会自动创建一个大小为 128M 的数据文件
MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定 MAIN 表
空间为用户默认的表空间。
4. TEMP 表空间完全由 DM 数据库自动维护。当用户的 SQL 语句需要磁盘空间来完成
某个操作时,DM 数据库会从 TEMP 表空间分配临时段。如创建索引、无法在内存中
完成的排序操作、SQL 语句中间结果集以及用户创建的临时表等都会使用到 TEMP
表空间。
5. HMAIN 表空间属于 HTS 表空间,完全由 DM 数据库自动维护,用户无需干涉。当用
户在创建 HFS 表时,未指定 HTS 表空间的情况下,充当默认 HTS 表空间。
每一个用户都有一个默认的表空间。对于 SYS、SYSSSO、SYSAUDITOR 系统用户,默
认的用户表空间是 SYSTEM,SYSDBA 的默认表空间为 MAIN,新创建的用户如果没有指定默
2
第 1 章 DM 逻辑结构概述
3
认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。如果用户在创建表的时候,
指定了存储表空间 A,并且和当前用户的默认表空间 B 不一致时,表存储在用户指定的表空
间 A 中,并且默认情况下,在这张表上面建立的索引也将存储在 A 中,但是用户的默认表空
间是不变的,仍为 B。
一般情况下,建议用户自己创建一个表空间来存放业务数据,或者将数据存放在默认的
用户表空间 MAIN 中,而不是将数据存放在 SYSTEM 表空间。
用户可以通过执行如下语句来查看表空间相关信息。
SYSTEM、ROLL、MAIN 和 TEMP 表空间查看语句:
SELECT * FROM V$TABLESPACE;
HMAIN 表空间查看语句:
SELECT * FROM V$HUGE_TABLESPACE;
结果集中各字段的含义请参考附录部分动态性能视图章节中对V$TABLESPACE的介绍,
关于表空间该如何使用,请参考第 17 章。
1.2.2 页
数据页(也称数据块)是 DM 数据库中最小的数据存储单元。页的大小对应物理存储空
间上特定数量的存储字节,在 DM 数据库中,页大小可以为 4KB、8KB、16KB 或者 32KB,
用户在创建数据库时可以指定,默认大小为 8KB,一旦创建好了数据库,则在该库的整个生
命周期内,页大小都不能够改变。图 1.2 显示了 DM 数据库页的典型格式。
图 1.2 DM 数据页的组成
页头控制信息包含了关于页类型、页地址等信息。页的中部存放数据,为了更好地利用
数据页,在数据页的尾部专门留出一部分空间用于存放行偏移数组,行偏移数组用于标识页
上的空间占用情况以便管理数据页自身的空间。
在绝大多数情况下,用户都无需干预 DM 数据库对数据页的管理。但是 DM 数据库还是提
供了选项供用户选择,使得在某些情况下能够为用户提供更佳的数据处理性能。
FILLFACTOR 是 DM 数据库提供的一个与性能有关的数据页级存储参数,它指定一个数
据页初始化后插入数据时最大可以使用空间的百分比(100),该值在创建表/索引时可以指
定。设置 FILLFACTOR 参数的值,是为了指定数据页中的可用空间百分比(FILLFACTOR)
和可扩展空间百分比(100-FILLFACTOR)。可用空间用来执行更多的 INSERT 操作,可扩
展空间用来为数据页保留一定的空间,以防止在今后的更新操作中增加列或者修改变长列的
长度时,引起数据页的频繁分裂。当插入的数据占据的数据页空间百分比低于 FILLFACTOR
时,允许数据插入该页,否则将当前数据页中的数据分为两部分,一部分保留在当前数据页
中,另一部分存入一个新页中。
对于 DBA 来说,使用 FILLFACTOR 时应该在空间和性能之间进行权衡。为了充分利用
空间,用户可以设置一个很高的 FILLFACTOR 值,如 100,但是这可能会导致在后续更新
数据时,频繁引起页分裂,而导致需要大量的 I/O 操作。为了提高更新数据的性能,可以设
第 1 章 DM 逻辑结构概述
置一个相对较低(但不是过低)的 FILLFACTOR 值,使得后续执行更新操作时,可以尽量
避免数据页的分裂,提升 I/O 性能,不过这是以牺牲空间利用率来换取性能的提高

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐