达梦数据库
文章平均质量分 68
zcn126
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于非聚集主键与聚集主键的问题探讨
该表中存在聚集主键(或聚集索引),聚集索引决定了表的物理存储顺序,理论上需要包含行的所有字段,大字段数据体积大、存储方式特殊,通常单独存储。如果强行将大字段纳入聚集存储结构,会极大增加索引复杂度和维护开销,严重影响性能,因此达梦数据库中做了此限制,聚集索引与大字段不能共存。功能频繁通过主键进行点查询时,且表不含大字段(包括后续维护时不加大字段列),主键是自增数字或递增的。利用“一个表只能有一个聚集索引”的特性,通过创建一个临时的聚集索引来“挤掉”主键的聚集属性。在项目中加大字段列时出现以下报错信息。原创 2026-03-15 20:23:47 · 78 阅读 · 0 评论 -
标量子查询优化(三)
这个语句标量子查询查询的是test2表,主查询中又有test2表,且标量子查询中关联关系和主查询的test2进行关联,所不同的在于查询条件c4的值。整个语句需求逻辑:主查询test2表和test1表进行内连接筛选满足条件的,然后根据test2表的c4分类汇总c1列。主要是语句的逻辑上存在重复计算,解决的核心在于如何减少冗余计算,通过对语句逻辑理解,利用case when来处理。根据case when的理解,使用其可以根据c4表判断汇总c1列,从而消除标量子查询的计算。原创 2025-10-19 18:12:00 · 281 阅读 · 0 评论 -
标量子查询优化(二)
语句求count时,我们从left join的理解中可以知道,返回的是左表数据以及右表满足的数据,如果右表关联列没有重复值,数据量其实求的是左表的结果数据量,因此达梦数据库计划中直接去掉右表,而求左表的全部数据就是求counter,就迅速返回结果。语句的右表(select sum(c2) sumc2,c1 from t2 group by c1) t2与t1表关联的列是c1,已经做分组去重,是具有唯一性,求的是每组c1对应的c2总和(sum)相当于。标量子查询:子查询返回的是单一值的标量。原创 2025-10-12 22:36:53 · 436 阅读 · 0 评论 -
多表关联查询-列子查询优化
于是我开始对语句进行解读,两张表进行关联,其中关联条件中出现and t2.id=(select top 1 id from t2 where t1.id=t2.b_id order by itime desc),这里面的t1.id=t2.b_id是t1和t2的关联关系,然后求t2的top 1 id,相当于每组的t2.b_id中获取第一个b_id,也就是分组去重,那就好办了,可以让t2表按b_id分组去重再与t1关联。改写思路就是先分组后关联,一次性分组去重后再和t1关联,从而大大减少计算量。原创 2025-09-24 21:35:10 · 229 阅读 · 0 评论 -
单表查询要点概述
前面大体上讲诉了单表查询的一些常规优化思路和改写。现做一个小结。原创 2025-09-14 17:47:41 · 247 阅读 · 0 评论 -
单表查询-模糊匹配
(1) 通配符在后面,如a like ‘L’||’%’,这种情况大部分是可以用索引去优化,打开LIKE_OPT_FLAG参数可以优化成a>=‘L’ AND a <‘M’。可以用LIKE ‘张%’去实现。通过例子验证,数据库在做模糊匹配的时候,尽量选择通配符在后面的情况,这样like匹配的效率更高。(3) 前后都有通配符,这种情况在匹配数据时候也是需要扫描全表数据后才能匹配到数据。(2) 通配符在前面,这种情况在匹配数据时候需要扫描全表数据后才能匹配到数据。1、使用like一般建议通配符在后。原创 2025-08-03 23:02:24 · 311 阅读 · 0 评论 -
单表查询-or优化
当我们遇到同一列or is null时,首先判断它是否可以过滤少量数据,可以的话就使用索引优化,另外optimizer_or_nbexp是or条件的优化参数。那其实它可以是任何值,或者可以不是任何值,所以它不能比较(=,<,>),对于缺失值可以用nvl赋予实际值便于比较计算。这不仅仅是数值上的0、布尔值上的false或字符串上的空字符串(“”),而是一种特殊的"空"状态。该语句or条件是同一列,但计划对表扫描两次,且可以看到使用索引后回表较大,这个计划的生成主要是受两个因素的影响。OR 表达式的优化方式。原创 2025-07-27 18:42:36 · 573 阅读 · 0 评论 -
单表查询-分页提前获取数据
大表分页查询优化思考原创 2025-07-21 23:40:13 · 391 阅读 · 0 评论 -
单表查询-counter的使用
对于where中只带有分区列,此时相当于查询分区子表的数据量,我们也是希望能够利用上counter来提升性能。这里可以看到,当开启counter属性时,执行计划时FAGR2,能够快速返回数据量。当我们开启counter维护表上的行数时,在做count时可以快速获取到表的数据量。在with counter情况下:alter table T1 with counter;达梦数据库中表上有个with counter属性,用来维护当前表内的行数。从下面的例子,我们可以真实感受一下counter优化的效果。原创 2025-07-20 21:32:43 · 442 阅读 · 0 评论 -
DM内存管理
DM内存简单介绍原创 2022-11-06 16:51:12 · 1525 阅读 · 1 评论 -
DM-设置定期收集统计信息作业
当你要根据表的变动情况进行统计信息的收集,可以设置定时作业进行收集。1.创建临时表--记录最大trxidcreate table trxid_jilu (OWNER VARCHAR2(20),TABLE_NAME VARCHAR2(20),trx_id int,table_cnt int,riqi date);--记录数据变化create table gather_tab (OWNER VARCHAR2(20),TABLE_NAME VARCHAR2(20),table_cnt...原创 2022-01-17 17:06:43 · 723 阅读 · 0 评论 -
DM数据库归档挖掘技术学习-DBMS_LOGMNR 包
归档挖掘修复数据原创 2022-01-17 10:17:19 · 868 阅读 · 0 评论 -
dmhs关于dm到mysql的搭建
1.环境准备(1)操作系统的用户权限 启动dmhs服务的操作系统用户最好是数据库的安装用户如果不能用数据库的安装用户,那么创建的dmhs服务用户必须要和数据库的安装用户在同一用户组中。(2)硬件需求 内存需求 DMHS 需要的内存总量取决于分析线程以及执行线程的并发数,最少需要 1G 内存。 磁盘需求 DMHS 安装文件占用 277M,包括了管理工具以及管理界面占用的空间,另外需要一些额外的空间存储 DMHS 运行的日...原创 2021-03-08 11:15:13 · 556 阅读 · 0 评论 -
关于国产数据库的归档那些事
什么是归档 数据库可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档。相应的日志被称为归档日志。设置归档方法1:修改dm.ini的ARCH_INI=1配置dmarch.ini[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL ARCH_DEST = /home/dmdba/data/DSC/ARCH/DSC02/archARCH_FILE_SIZE = 128ARCH_SPACE_L...原创 2020-08-16 16:39:59 · 1402 阅读 · 0 评论 -
关于dm的水平分区表学习
1.创建range分区表语句示例:create table t3 (id int,name varchar(20),time datetime)partition by range(time)(partition p1 values less than ('2015-09-01'),partition p2 values less than ('2019-07-01'),...原创 2020-04-24 15:22:03 · 553 阅读 · 0 评论 -
CHECKPOINT
Select checkpoint(10);知识点:设置检查点 参数说明: rate:刷脏页百分比,取值范围:1~100 返回值: 检查点是否成功,0表示成功,非0表示失败 举例说明: 设置刷脏页百分比为30%的检查点 SELECT CHECKPOINT(30);checkpoint是一个内部事件,这个事件激活以后会触发数据库写进程(DBWR)将数据缓冲(DATABUFFER CAC...原创 2020-04-06 15:00:06 · 413 阅读 · 0 评论 -
静态游标
静态游标概念静态游标是只读游标,它总是按照打开游标时的原样显示结果集,在编译时就能确定静 态游标使用的查询。静态游标又分为两种:隐式游标和显式游标。1.隐式游标%FOUND:语句是否修改或查询到了记录,是返回TRUE,否则返回FALSE; %NOTFOUND:语句是否未能成功修改或查询到记录,是返回TRUE,否则返回 FALSE; %ISOPEN:游标是否打开。是返回...原创 2020-04-03 17:33:10 · 617 阅读 · 0 评论 -
达梦数据库常用函数之三
一、空值判断函数1.COALESCE(n1,n2,…,nx):返回其参数中第一个非空的值,如果所有参数均为NULL,则返回NULL。如果参数为多媒体数据类型,如TEXT类型,则系统会将TEXT类型先转换为VARCHAR 类型或VARBINARY类型,转换的最大长度为8188,超过部分将被截断。SELECT COALESCE(NULL,TIME '12:00:00',TIME '11:00...原创 2020-03-20 15:56:09 · 12690 阅读 · 0 评论 -
DM正则表达式
一、相关字符介绍REGEXP 函数是根据符合 POSIX 标准的正则表达式进行字符串匹配操作的系统函数, 是字符串处理函数的一种扩展。. :匹配除了换行符以外的单个字符。d.m可以匹配dameng。*:匹配前面的子表达式0次或多次。a*b可以匹配back。+:匹配前面的字符一次或者多次。a+可以匹配about。^:匹配行首。$:匹配行尾。[]:字符集,匹配任何括号间的字...原创 2020-03-20 11:36:18 · 7262 阅读 · 0 评论 -
DM日期时间函数
1.ADD_DAYS(data,n):返回日期 date加上相应天数n后的日期值。n可以是任意整数,date是日期类型(DATE)或时间戳类型(TIMESTAMP),返回值为日期类型(DATE)。select ADD_DAYS(date '2020-03-30',2);2.ADD_MONTHS(date,n):返回日期 date加上n个月的日期时间值。n可以是任意整数,date是日...原创 2020-03-19 16:04:33 · 17612 阅读 · 0 评论 -
DMTDD环境的搭建
本文内容主要是讲在DMTDD环境下,前端库是两个节点DSC的搭建过程。环境准备DMTDD主机及组件分配信息 实例名 IP地址 操作系统 备注 CSS0/CSS1 DSC0/DSC1 192.168.73.22 Redhat7.2 ...原创 2020-03-19 12:05:01 · 874 阅读 · 0 评论 -
达梦数据库DSC搭建
一、环境准备硬件:两台相同配置机器、2G 内存、20G 本地磁盘、2 块网卡操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)数据库版本:disql V8.1-1-66-20.03.10-118926-ENT网络配置:DSC01:网卡1 192.168.73.* 网卡2 10.0.0.101DSC02:网卡1 19...原创 2020-03-17 14:38:24 · 1330 阅读 · 0 评论 -
达梦数据库常用函数之二
1.ASCII(char):返回char对应的ASCII的编码。select ASCII('B');2.BIT_LENGTH(char):返回char的位长度。3.CHAR(n)/CHR(n):返回数值n对应的字符,与ASCII()函数相反。select char(97);4.CHAR_LENGTH(char) /CHARACTER_LENGTH(char) ...原创 2020-03-17 11:07:31 · 11733 阅读 · 1 评论 -
DM数据库常用函数之一
1.ABS(n):返回n的绝对值;2.ACOS(n):返回n的反余弦值,n的取值-1到1;3.ASIN(n):返回n的反正弦值,n的取值-1到1;4.ATAN(n):返回n的反正切值;5.ATAN(n,m):返回n/m的反正切值;6.CEIL(n)/CEILING(n):返回大于等于n的最小整数; select ceil(15.67); ...原创 2020-03-15 11:43:02 · 3160 阅读 · 0 评论 -
达梦数据库物化视图的简单使用
一、概念 物化视图存储基表的数据,与视图不同的是,物化视图可以通过刷新来同步基表的数据。二、创建、修改物化视图 1.例子 create materialized view mv_test build immediate refresh force on demand with rowid enable query rewrite as selec...原创 2020-03-13 18:46:15 · 2546 阅读 · 0 评论 -
DM系统包学习之五—— DBMS_BINARY包
一、概要:这个包用来读写二进制流,二进制是机器能读懂的语言,然后转化成人类能读懂的语言。二、相关方法 1. BINARY_GET_CHAR 返回从二进制流VB中偏移OFFSET开始的一个CHAR类型数据。 语法:FUNCTION BINARY_GET_CHAR( VB VARBINARY, OFFSET INT ); 2.BI...原创 2020-03-13 17:46:36 · 452 阅读 · 0 评论 -
DMSQL的循环结构
一、LOOP语句 1.语法: LOOP 代码; END LOOP; 2.例子:create or replace procedure pro_loop(a int) asbeginloop if a<=0 then exit; end if; ...原创 2020-03-13 15:55:38 · 1406 阅读 · 0 评论 -
DM系统包学习之四—— DBMS_ALERT包
一、相关方法1. DBMS_ALERT.REGISTER 为当前会话注册一个预警事件,本操作会提交当前事务。 语法:DBMS_ALERT.REGISTER ( NAME IN VARCHAR(30) ) ; 说明:NAME 输入参数,预警事件名。2.DBMS_ALERT.REMOVE 删除当前会话的一个预警事件,如果该预警事件正在 DBMS_ALERT.WA...原创 2020-03-12 22:07:32 · 398 阅读 · 0 评论 -
DMSQL中的CASE语句
一、一个表达式与多个值进行比较1.结构case 条件表达式when 条件 then 代码1when 条件 then 代码2else 代码3end [case];2.例子:create or replace procedure case_grade1(grade varchar(10)) asdeclarev varchar(10);beginv:=c...原创 2020-03-12 11:51:40 · 3614 阅读 · 2 评论 -
DMSQL中的if语句
一、结构1.只有if模块,最简单的结构if 条件 then代码end if;2.if..elseif 条件 then代码1else代码2end if;3.if..elsif/elseif..else..if 条件1 then代码1elseif/elsif 条件2代码2...else代码nend if;二、举例写一个...原创 2020-03-11 19:27:03 · 7639 阅读 · 0 评论 -
DM系统包学习之三——DBMS_ADVANCED_REWRITE包
一、相关方法1.DECLARE_REWRITE_EQUIVALENCE 声明一个等价重写规则。 语法: PROCEDURE DECLARE_REWRITE_EQUIVALENCE ( NAME VARCHAR(128), SOURCE_STMT VARCHAR(8188), D...原创 2020-03-11 16:18:03 · 368 阅读 · 0 评论 -
DM系统包学习之二—— DMGEO包
一、概述DMGEO 系统包实现了 SFA 标准(《OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option》) 中规定的SQL 预定义 schema,基于 SQL UDT(自定义数据类型)的空间数据类型和空间数据类型的初始化,以及针对空间数据类...原创 2020-03-10 21:43:25 · 5010 阅读 · 0 评论 -
DM系统包学习之一
一、概述达梦数据库提供了达梦特有的DMGEO系统包和兼容ORACLE数据库的DBMS_ALERT、 DBMS_OUTPUT、UTL_FILE和UTL_MAIL等系统包功能。二、系统包的创建、删除语句:SP_CREATE_SYSTEM_PACKAGES(create_flag, pkgname)SP_CREATE_SYSTEM_PACKAGES(create_flag)CR...原创 2020-03-10 17:15:02 · 595 阅读 · 0 评论 -
关于达梦数据库VPD的学习总结
一、VPD概念虚拟专用数据库 (VPD) 提供了角色和视图无法提供的行级访问控制。在企业中,为了确保客户只能访问到自己的数据,而不能访问其他客户的数据,比如银行行业,客户只能看到自己的账户里的数据,但是不能访问到其他客户的数据,提高数据的安全性,也能降低成本,因此使用VPD技术二、工作原理将一个或多个安全策略与表或视图关联后,就可以实现虚拟专用数据库。三、简单示例达梦数据库管理...原创 2020-03-09 21:07:36 · 610 阅读 · 0 评论 -
简单介绍存储过程和存储函数
一、存储过程一般存储过程的结构:create or replace procedure 过程名(参数 数据类型)as/is声明变量begin 过程; 异常处理;end;例:创造一个简单整数的加法器create or replace procedure pro_add (a in out int,b in int) asbegin a :=...原创 2020-03-09 15:46:13 · 518 阅读 · 0 评论 -
简单介绍DM集合支持的方法
1.COUNT:返回集合元素的个数语法:<集合名>.count2.LIMIT:返回VARRAY 集合的最大的元素个数,对索引表和嵌套表不适用。语法:<VARRAY 变量名>.LIMIT3.FIRST:返回集合中的第一个元素的下标号,对于VARRAY 集合始终返回1。语法:<集合变量名>.FIRST4.LAST:返回集合中最后一个元素...原创 2020-03-09 12:31:52 · 269 阅读 · 0 评论 -
达梦数据库常规数据类型总结之二
集合类型1.VARRAY是一种具有可伸缩性的数组,数组中的每个元素具有相同的数据类型。语法:TYPE<数组名> IS VARRAY(<常量表达式>) OF <数据类型>;例子:DECLARE TYPE MY_ARRAY_TYPE IS VARRAY(10) of varchar(100); v my_array_type; ...原创 2020-03-06 18:40:26 · 2377 阅读 · 0 评论 -
达梦数据库常规数据类型总结之一
一、数值数据类型1.NUMERIC[精度,标度]:用于存储零、正负定点数。精度范围1至382.NUMBER类型:跟NUMERIC相同3.DECIMAL/DEC类型:跟NUMERIC相似4.BIT类型:用于存储整数数据1、0或null5.INTEGER/INT类型o:用于存储有符号整数,精度为106.PLS_INTEGER类型:与INTEGER相同7.BIGINT类型:用...原创 2020-03-05 16:23:28 · 21767 阅读 · 2 评论 -
linux下,配置MPP主备
环境准备1.配置环境 机器名 IP地址 初始状态 A 192.168.73.20、 192.168.73.22 主库GRP1_MPP_EP01 备库GRP2_MPP_EP22 B 192.168.73.21 192...原创 2020-03-03 10:51:58 · 850 阅读 · 0 评论 -
在Linux下,DMHS的搭建
一、概念1.DMHS全称:Heterogeneous database Synchronization for DM达梦异构数据同步软件2.工作模式捕获器:读取解析源端数据库管理系统的归档日志;执行器:接收数据,并进行数据映射及事务的入库(目标端数据库)执行;路由器:适用于捕获器和执行器被网关隔断的环境;转发器:捕获器和执行器之间存在物理隔离网闸,无法通过网络直...原创 2020-02-26 18:22:49 · 1702 阅读 · 0 评论
分享