达梦分区表的使用

news2025/1/13 17:32:34

在大型的企业应用或企业级的数据库应用中,要处理的数据量通常达到TB级,对于这样的大型表执行全表扫描或者DML操作时,效率是非常低的。

为了提高数据库在大数据量读写操作和查询时的效率,达梦数据库提供了对表和索引进行分区的技术,把表和索引等数据库对象中的数据分割成小的单位,分别存放在一个个单独的段中,用户对表的访问转化为对较小段的访问,以改善大型应用系统的性能。

达梦数据库分区表主要包括范围分区、哈希分区和列表分区三种方式, 企业可以使用合适的分区方法,如日期(范围)、区域(列表),对大量数据进行分区。由于达梦数据库划分的分区是相互独立且可以存储于不同的存储介质上的,完全可满足企业高可用性、 均衡IO、降低维护成本、提高查询性能的要求。今天我们主要讨论水平分区。 

一、创建分区表

1.创建范围分区表

create table r_t1 (pid int primary key ,id int)
partition by range (pid)
(partition p1 values less than (101),
partition p2 values less than (201));

将1-200的值录入到t_r1中。

begin
for i in 1..200 loop
insert into r_t1 values (i,i+1);
end loop;
end;

查看表r_t1的类型,显示为分区表。

select table_name,PARTITIONED from dba_tables where table_name='R_T1';

查看分区表的分区,显示为二个分区p1和p2。

select table_name,partition_name from dba_tab_partitions where table_name='R_T1';

查询分区表中的记录数。

SQL> select count(*) from r_t1 partition (p1);

这样一个范围分区就建立好了。

2.创建列表分区

create table l_t1 (id int,name varchar(20))
partition by list (name)
(partition p1 values  ('湖北'),
partition p2 values  ('湖南'),
partition p3 values  ('安徽'));

查看分区表的分区,显示为三个分区p1,p2,p3

SQL>select table_name,partition_name from dba_tab_partitions where table_name='L_T1';

3.创建哈希分区

SQL>CREATE TABLE sales01(sales_id INT, saleman CHAR(20),
saledate DATETIME, city  CHAR(10))
PARTITION BY HASH(city)
(PARTITION p1,
PARTITION p2,
PARTITION p3,
PARTITION p4 );

如果不需指定分区表名,可以通过指定哈希分区个数来建立哈希分区表。

SQL>CREATE TABLE sales02(sales_id int, saleman char(20),
saledate DATETIME, city  CHAR(10)) PARTITION BYHASH(city)
PARTITIONS 4;

PARTITIONS后的数字表示哈希分区的分区数,STORE IN 子句中指定了哈希分区依 次使用的表空间。使用这种方式建立的哈希分区表分区名是匿名的,DM7 统一使用 DMHASHPART+分区号(从 0 开始)作为分区名。例如,需要查询 sales02第一个分区的数据,可执行以下语句:

SQL>SELECT* FROM sales02 PARTITION (DMHASHPART1);

二、增加分区

SQL> alter table r_t1 add partition p3 values less than(301);

 查看分区数,可以看到新增了一个分区p3

三、删除分区

SQL> alter table r_t1 drop partition p3;

可以看到,新增的分区P3被删除了。

四、合并分区

Sql> alter table r_t1 merge partitions p1,p2 into partition p1_2;

五、拆分分区

SQL> alter table r_t1 split partition p1_2 at (100) into (partition p1,partition p2);

六、水平分区表的限制

1.分区列类型必须是数值型、字符型或日期型,不支持BLOB、CLOB、IMAGE、TEXT、 LONGVARCHAR、BIT、BINARY、VARBINARY、LONGVARBINARY、时间间隔类型和用户自定义类型为分区列。

2.范围分区和哈希分区的分区键可以多个,最多不超过16列;LIST分区的分区键 必须唯一。

3.水平分区表指定主键和唯一约束时,分区键必须都包含在主键和唯一约束中。

4.水平分区表不支持临时表。

5.不能在水平分区表上建立自引用约束。

6.普通环境中,水平分区表的各级分区数的总和上限是 65535;MPP 环境下,水平 分区表的各级分区总数上限取决于INI参数MAX_EP_SITES,上限为2 ^( 16 - log2MAX_EP_SITES)。比如:当MAX_EP_SITES为默认值64时,分区总数上 限为1024。

7.不允许对分区子表执行任何DDL操作。

8.哈希分区支持重命名、删除约束、设置触发器是否启用的修改操作。

9.范围分区支持分区合并、拆分、增加、删除、交换、重命名、删除约束、设置触发 器是否生效操作。

10. LIST分区支持分区增加、删除、交换、重命名、删除约束、设置触发器是否生效操作。

11. LIST分区范围值不能为NULL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盘点界面控件DevExpress WinForms的几大应用程序主题

DevExpress WinForm控件包含了50个自定义皮肤,其中涵盖了Microsoft Office和Windows 11启发式的应用程序主题。 PS:DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建…

DNDC模型在土地利用变化、未来气候变化下的建模方法及温室气体时空动态模拟实践技术应用

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到,要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时,提到要把减污降碳协同增效作为促…

vue3+el-menu实现路由刷新左侧菜单栏保持选中状态

问题描述&#xff1a; 使用el-menu 实现管理系统左侧菜单栏的时候&#xff0c;刷新页面&#xff0c;菜单栏的选中状态消失 解决方案&#xff1a; 给 el-menu 加上 :default-active"this.$route.path" <el-menu :default-active"this.$route.path" …

雅思倒计时一个月|阅读准备笔记(三)

雅思阅读真经总纲。 读了一个星期 True|False|Not Given 这类题不太清楚&#xff0c;书里面有方法很有效 深呼吸过渡到下一篇阅读&#xff0c;不用急忙去下一篇 技巧一&#xff1a;拿到文章先读题目 看文章之前先读题目&#xff01;&#xff01;&#xff01;并且划一下题目关…

【头歌实训】【基于 Logisim 的 RISC-V 处理器设计】第二关-32个寄存器读写

好恶心的题&#xff0c;手连麻了 一、题目 考虑到寄存器文件的重要性&#xff0c;为基于 Logisim 实现单周期 RV32I 处理器&#xff0c;本关卡需实现一个寄存器文件部件。由于 0 号寄存器之外的 RV32I 寄存器操作方式类似&#xff0c;寄存器文件包含 32 个 32 位寄存器&#x…

chatgpt赋能Python-python_idle怎么撤销

Python Idle撤销操作&#xff1a;简易指南 作为一名有10年Python编程经验的工程师&#xff0c;我深知Python Idle在编程中的重要性。当你在编写Python代码时&#xff0c;难免会犯一些错误&#xff0c;此时“撤销”操作是非常有用的。在本篇文章中&#xff0c;我将为您介绍Pyth…

苹果手机微信分身怎么弄?学会这招不求人!

案例&#xff1a;想要把生活与工作分开&#xff0c;所以我创建了两个微信&#xff0c;想问下怎么样可以双开微信&#xff1f; 【求解&#xff01;我弄了两个微信号&#xff0c;目的是区分生活与工作&#xff0c;不想要私人账号加太多陌生人。但是微信账号老是要切换才能看到信…

SpringRetry重试机制(3秒上手)

目录 前言一、SpringRetry的使用1.1 引入依赖1.2 开启重新机制1.3 3 在方法上添加Retryable1.3.4 编写重试失败后的执行的方法测试 前言 SpringRetry重试机制在实际工作中的场景&#xff0c;比如: 发送消息失败&#xff0c;需要重新发送。调用远程服务失败&#xff0c;需要重…

5.2 在操作系统上安装部署HAProxy

HAProxy可以在各种主流的Linux发行版、主流的Unix操作系统&#xff08;如Fredsd、Solaris&#xff09;安装和稳定高效的运行&#xff0c;从HAProxy提供的安装文档“INSTALL”上&#xff0c;可以获得这些信息&#xff0c;如图5-3所示。 图5- 3 有两种安装HAProxy的方法&#xff…

Java | 一分钟掌握定时任务 | 8 - XXL-Job分布式定时任务

作者&#xff1a;Mars酱 声明&#xff1a;本文章由Mars酱编写&#xff0c;部分内容来源于网络&#xff0c;如有疑问请联系本人。 转载&#xff1a;欢迎转载&#xff0c;转载前先请联系我&#xff01; 前言 java定时任务的框架可真是多啊&#xff0c;XXL-JOB也是一个分布式任务…

开源进展|WeCross v1.3.0发布,支持适配FISCO BCOS v3.0

WeCross是微众银行自主研发并完全开源的区块链跨链协作平台&#xff0c;致力于促进跨行业、机构和地域的跨区块链信任传递和商业合作&#xff0c;有助于实现异构区块链系统之间安全可信的互操作。 WeCross v1.2.0自发布以来&#xff0c;得到了众多社区伙伴的支持和反馈。目前&…

内网渗透(八十)之搭建额外域控

搭建额外域控 我们在之前搭建完成Windows Server 2012 R2 域控的基础上搭建一个额外的域控。多个域控的好处在于,当其中有域控出现了故障,仍然能够由其他域控来提供服务。选择一台Windows Server 2012 R2 服务器作为额外域控,主机名为DC2. 首先在DC2上配置IP地址为192.168…

如何有效控制城镇供水管网漏损

漏损问题是影响城镇供水管网稳定与可靠运行的重要问题。其中&#xff0c;城镇供水管网运行中&#xff0c;一旦存在漏损情况不仅会对供水管网的供水水质产生影响&#xff0c;导致其水质降低&#xff0c;而且会出现供水压力与供水量减少等变化&#xff0c;对供水企业的供水服务质…

硬核数据处理笔记本推荐(2023版)

2023年硬核数据处理笔记本推荐它来了&#xff01;&#xff01;&#xff01;在大家的呼声中它来了&#xff01;&#xff01;&#xff01; 去年的推荐收货不少好评&#xff0c;今年继续为大家分享选购攻略&#xff01; 选购背景&#xff1a; 1.今年英特尔处理器挤牙膏、出套娃…

【开源】diy一个wifi遥控小飞机

完成效果&#xff1a; 童年的纸飞机 资料中包含了PCB和参考的小飞机模型&#xff0c;我当时是用某宝上几块钱的手抛小飞机改装的&#xff0c;需要一定的动手能力。 硬件 材料 720空心杯电机 * 2107正反桨一对&#xff0c;搭配电机3.7V 300mAh锂离子电池 * 1控制板 * 148cm手…

【C++】异常+智能指针+特殊类和类型转换

上天可能觉得我太孤独&#xff0c;派你来和我一起对抗虚无。 文章目录 一、异常1.传统处理错误的方式vs异常2.异常的使用规则2.1 异常的抛出和捕获原则2.2 在函数调用链中异常栈展开匹配原则 3.异常安全和异常规范4.自定义异常体系5.标准库的异常体系和异常的优缺点 二、智能指…

Rocketmq简单使用

1.引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.7.0</version></dependency><dependency><groupId>org.apache.rocketmq</groupId>&l…

22.vue插槽

目录 1 基本使用 2 name属性与v-slot 3 插槽放默认内容(后备内容) 4 插槽的自定义属性(作用域插槽) 4.1 简单使用 4.2 传data 4.3 支持解构 插槽操作就是写在组件中间的东西&#xff0c;其目的是增加组件在UI结构上的复用性&#xff0c;就像下面这样 直接写是渲染…

chatgpt赋能Python-python_ipynb

Python Ipython Notebook: 大数据时代的完美解决方案 在大数据时代&#xff0c;数据处理和分析是许多组织必须面对的挑战。Python Ipython Notebook (IPYNB) 可以提高数据探索性分析的效率&#xff0c;并能够使您更好地理解和评估数据。本文将介绍Python IPYNB是什么、以及为什…

C++设计手段的智慧:从基础到前沿

C设计手段的智慧&#xff1a;从基础到前沿 一、C基础设计手段&#xff08;Basic Design Techniques in C&#xff09;1.1 C 类和对象设计1.1.1 类的定义1.1.2 对象的创建和使用1.1.3 类的封装1.1.4 类的继承1.1.5 类的多态 1.2 RAII of C design tools (resource acquisition i…