# 达梦sql查询 Sql 优化
达梦sql查询 Sql 优化
文章目录
- 达梦sql查询 Sql 优化
- 注意点
- 测试数据
- 单表查询 Sort 语句优化
- 优化过程
- 多表关联SORT 优化
- 函数索引的使用
注意点
- 关于优化过程中工具的选用,推荐使用自带的
DM Manage,其它工具在查看执行计划等时候不明确 - 在执行计划中命中顺序是左右边最上边优先执行,同一级上面的先执行

测试数据
-
本次测试的
DM8数据库版本号如下:SELECT * FROM v$version

-
主表
-- SYSDBA.TABLE_CLASS_TEST definitionCREATE TABLE SYSDBA.TABLE_CLASS_TEST (ID VARCHAR(100) NOT NULL,NAME VARCHAR(100) NULL,CODE VARCHAR(100) NULL,TITLE VARCHAR(100) NULL,CREATETIME TIMESTAMP NULL,COLUMN1 VARCHAR(100) NULL,COLUMN2 INTEGER NULL,COLUMN3 VARCHAR(100) NULL,COLUMN4 VARCHAR(300) NULL,COLUMN5 VARCHAR(400) NULL,COLUMN6 VARCHAR(100) NULL,COLUMN7 VARCHAR(10) NULL,CONSTRAINT TAVBLE_CLASS_TEST_PK PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX INDEX33557764 ON SYSDBA.TABLE_CLASS_TEST (ID);
- 子表
CREATE TABLE "SYSDBA"."TABLE_CLASS_TEST_CHILD"
(
"ID" VARCHAR(100) NOT NULL,
"NAME" VARCHAR(100),
"CODE" VARCHAR(100),
"TITLE" VARCHAR(100),
"CREATETIME" TIMESTAMP(6),
"COLUMN1" VARCHAR(100),
"COLUMN2" INTEGER,
"COLUMN3" VARCHAR(100),
"COLUMN4" VARCHAR(300),
CONSTRAINT "TABLE_CLASS_TEST_CHILD" NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
- 使用的
sql工具达梦自带的客户端工具DM MANAGER
单表查询 Sort 语句优化
- 对于单表查询含有
order by的SQL,去掉SORT比较简单,创建对应的索引即可。
优化过程
- 执行
sql执行计划
explain
select * from table_class_test where code ='3' order by createtime desc,code desc
CSCN2

- 给排序字段创建联合排序索引
create index "SYSDBA"."TABLE_CLASS_TEST_ORDER_BY_INDEX1" on "SYSDBA"."TABLE_CLASS_TEST"("CODE" desc,"CREATETIME" desc);
- 更新表索引信息
sp_index_stat_init('SYSDBA','TABLE_CLASS_TEST_ORDER_BY_INDEX1');
- 再次执行
sql计划如下,命中排序索引,Sort部分被优化了

多表关联SORT 优化
join部分列没有索引全表扫描了
explain
select x.*,y.* from table_class_test x join table_class_test_child y on x.code=y.code
where x.code='3'
order by x.code desc

- 给子表
code俩个表关联的列增加索引
create index "SYSDBA"."table_class_test_child_code_index1"
on "SYSDBA"."TABLE_CLASS_TEST_CHILD"("CODE");sp_index_stat_init('SYSDBA','table_class_test_child_code_index1');

- 都命中了索引
函数索引的使用
- 达梦可以创建函数索引,在某些业务中可以考虑使用函数索引例如下面的语句
select * from table_class_test where COLUMN3='3'select * from table_class_test where IFNULL(COLUMN3,'-')='3'
- 创建函数索引
CREATE INDEX "column3_ifnull_index" ON "SYSDBA"."TABLE_CLASS_TEST"("IFNULL"(COLUMN3, '-')) STORAGE(ON "MAIN", CLUSTERBTR) ;

相关文章:
# 达梦sql查询 Sql 优化
达梦sql查询 Sql 优化 文章目录 达梦sql查询 Sql 优化注意点测试数据单表查询 Sort 语句优化优化过程 多表关联SORT 优化函数索引的使用 注意点 关于优化过程中工具的选用,推荐使用自带的DM Manage,其它工具在查看执行计划等时候不明确在执行计划中命中…...
Linux下SPI驱动:SPI设备驱动简介
一. 简介 Linux下的SPI 驱动框架和 I2C 很类似,都分为主机控制器驱动和设备驱动,主机控制器也就是 SOC的 SPI 控制器接口,SPI设备驱动也就是所操作的SPI设备的驱动。 本文来学习一下Linux下SPI设备驱动。 二. Linux下SPI驱动:SP…...
【简明图文教程】Node.js的下载、安装、环境配置及测试
文章目录 前言下载Node.js安装Node.js配置Node.js配置环境变量测试后言 前言 本教程适用于小白第一次从零开始进行Node.js的下载、安装、环境配置及测试。 如果你之前已经安装过了Node.js或删除掉了Node.js想重新安装,需要先参考以下博客进行处理后,再根…...
共模电感饱和与哪些参数有关?这些参数是如何影响共模电感的?
在做一个变频器项目,遇到一个问题,在30Hz重载超过一定1小时,CE测试结果超出限制,查找原因最终发现EMI filter内的共模电感加热,fail现象可以复现。最终增大Y电容把问题解决了。由此问题引申出一个问题,到底…...
儿童护眼台灯怎么选?五款必选的高口碑护眼台灯推荐
儿童台灯,想必大家都不会陌生了,是一种学生频繁使用的小灯具,一般指放在桌面用的有底座的电灯。随着近年来儿童青少年的视力急速下滑,很多家长都会选择给孩子选择一款合适的护眼台灯,以便孩子夜晚学习能有个好的照明环…...
前端小技巧之轮播图
文章目录 功能htmlcssjavaScript图片 设置了一点小难度,不理解的话,是不能套用的哦!!! (下方的圆圈与图片数量不统一,而且宽度是固定的) 下次写一些直接套用的,不整这些麻…...
手动实现简易版RPC(上)
手动实现简易版RPC(上) 前言 什么是RPC?它的原理是什么?它有什么特点?如果让你实现一个RPC框架,你会如何是实现?带着这些问题,开始今天的学习。 本文主要介绍RPC概述以及一些关于RPC的知识,为…...
大语言模型总结整理(不定期更新)
《【快捷部署】016_Ollama(CPU only版)》 介绍了如何一键快捷部署Ollama,今天就来看一下受欢迎的模型。 模型简介gemmaGemma是由谷歌及其DeepMind团队开发的一个新的开放模型。参数:2B(1.6GB)、7Bÿ…...
关于npm和yarn的使用(自己的问题记录)
目录 一 npm 和 yarn 的区别 二 npm 和 yarn 常用命令对比 1. 初始化项目 2. 安装所有依赖包 3. 安装某个依赖包 4.安装某个版本的依赖包 5. 更新依赖包 5. 移除依赖包 三 package.json中 devDependencies 和 dependencies 的区别。 四 npm安装包时,…...
Web端Excel的导入导出Demo
📚目录 📚简介:✨代码的构建:💭Web端接口Excel操作🚀下载接口🚀导入读取数据接口 🏡本地Excel文件操作⚡导出数据🌈导入读取数据 📚简介: 使用阿里巴巴开源组件Easy Exce…...
Java日期正则表达式(附Demo)
目录 前言1. 基本知识2. Demo 前言 对于正则匹配,在项目实战中运用比较广泛 原先写过一版Python相关的:ip和端口号的正则表达式 1. 基本知识 对于日期的正则相对比较简单 以下是一些常见的日期格式及其对应的正则表达式示例: 年-月-日&a…...
基于LabVIEW的CAN通信系统开发案例
基于LabVIEW的CAN通信系统开发案例 介绍了基于LabVIEW开发的CAN通信系统,该系统主要用于汽车行业的数据监控与分析。通过对CAN通信协议的有效应用,实现了车辆控制系统的高效信息交换与实时数据处理,从而提升了车辆性能的检测与优化能力。 项…...
SAP SD学习笔记07 - 紧急发注(急单),现金贩卖,贩卖传票Type/ 明细Category 及其Customize
上面讲SAP中主干流程的时候,还有后面讲一括处理的时候,都用的是 OR 标准受注。 SAP SD学习笔记01 - 简单走一遍SD的流程:受注,出荷,请求_怎么学好sd模块-CSDN博客 下面开始讲一些稀奇古怪的非标准流程。 当然&#x…...
(六)C++自制植物大战僵尸游戏关卡数据讲解
植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 游戏关卡数据文件定义了游戏中每一个关卡的数据,包括游戏类型、关卡通关奖励的金币数量、僵尸出现的波数、每一波出现僵尸数量、每一波僵尸出现的类型等。根据不同的游戏类型,定义了不同的通…...
Java基于微信小程序的校园外卖平台设计与实现,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
渗透工具及其知识库(个人笔记)
1.IP搜寻 查看kali网段: ip addr 、 ifconfig namp:nmap -sP xxx.xxx.xxx.0/24 netdiscover:netdiscover xxx.xxx.xxx.0/24 arp:arp-scan -l 2.端口扫描 粗略扫描:nmap <IP> 深度扫描: …...
MongoDB的使用
一、Spring Boot集成MongoDB 1 引用依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency> 2 配置文件配置mongodb资料 # MongoDB连接信息 spring.…...
labview中FP.isFrontmost不生效?
主GUI界面中调用子GUI程序FP.isFrontmost不生效? 如果主GUI程序使用“floating”,子GUI程序使用default动作,则子GUI无法打开到最前。子GUI程序只能使用“模态”才能置顶。 主GUI程序: 子GUI程序: 改正的方法很简单,…...
Vela-OS: 记录一个class层,处理MSC协议的bug
一、关于USC-MSC类设备驱动层,处理SCSI指令的代码逻辑问题 1. 源文件 \nuttx\drivers\usbdev\usbmsc_scsi.c 2. 问题描述 对于INQUIRY指令,长度一般是6个字节,cdblen字段嵌入在CBW数据包中,如下: 命令阶段的CBW数据包: 55 53 42 43 60 2a c0 8b 24 00 00 00 0x80 0x…...
跨框架探索:React Redux 和 Vuex 对比分析快速掌握React Redux
React Redux 和 Vuex 都是前端状态管理库,分别用于 React 和 Vue.js 框架。 它们都提供了一套规范的状态管理机制,帮助开发者更好地组织和管理应用状态。下面是它们的一些异同点: 相同点: 中心化状态管理:两者都提…...
OpenEuler24.x环境部署ZABBIX7.2.4全攻略:从零搭建监控系统
1. 环境准备与基础配置 在国产化操作系统OpenEuler24.x上部署ZABBIX7.2.4监控系统,首先需要确保基础环境配置正确。我曾在多个企业级项目中实践过这套方案,发现环境准备阶段的小细节往往决定了后续部署的成败。 操作系统兼容性验证是第一步。OpenEuler24…...
Windows下OpenClaw保姆级教程:GLM-4.7-Flash自动化办公配置
Windows下OpenClaw保姆级教程:GLM-4.7-Flash自动化办公配置 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年我接手了一个需要频繁处理会议纪要的项目,每周要整理近10小时的会议录音。当我第一次尝试用OpenClaw对接GLM-4.7-Flash模型时,发现这…...
如何快速部署SDUOJ在线评测系统:面向开发者的完整实战指南
如何快速部署SDUOJ在线评测系统:面向开发者的完整实战指南 【免费下载链接】OnlineJudge :sparkles: Open source online judge system (based on Microservice). SDUOJ 开源在线评测系统(基于微服务架构)。开源社区QQ群 808751832 项目地址…...
深度解析:小熊猫Dev-C++技术架构与性能优化实现
深度解析:小熊猫Dev-C技术架构与性能优化实现 【免费下载链接】Dev-CPP A greatly improved Dev-Cpp 项目地址: https://gitcode.com/gh_mirrors/dev/Dev-CPP 小熊猫Dev-C(Red Panda Dev-C)作为Orwell Dev-C的重要分支,是一…...
RWKV7-1.5B-g1a部署教程:CSDN GPU平台外网访问全链路排障
RWKV7-1.5B-g1a部署教程:CSDN GPU平台外网访问全链路排障 1. 模型简介 rwkv7-1.5B-g1a是基于新一代RWKV-7架构的多语言文本生成模型,特别适合中文场景下的轻量级应用。这个1.5B参数的版本在保持高效推理的同时,能够处理基础问答、文案续写、…...
OpenClaw飞书机器人深度配置:GLM-4.7-Flash对话触发任务详解
OpenClaw飞书机器人深度配置:GLM-4.7-Flash对话触发任务详解 1. 为什么选择OpenClaw飞书GLM-4.7-Flash组合 去年我在团队内部推行自动化工具时,发现三个痛点:一是商业SaaS机器人无法处理敏感数据,二是通用对话机器人缺乏本地操作…...
Ostrakon-VL-8B开源模型社区贡献指南:问题反馈与代码提交
Ostrakon-VL-8B开源模型社区贡献指南:问题反馈与代码提交 开源社区的力量,在于无数开发者的智慧汇聚。Ostrakon-VL-8B作为一个强大的视觉语言模型,它的成长与完善,离不开每一位使用者的反馈和贡献。你可能在部署或使用过程中发现…...
阿里云瑶池数据库KVCache亮相NVIDIA GTC 2026
上周,全球人工智能与加速计算领域的顶级盛会——NVIDIA GTC 2026 在美国圣何塞圆满举行。连续六年稳居 Gartner 数据库魔力象限“领导者”象限的阿里云瑶池数据库,再次以中国自研数据库代表身份闪耀国际舞台。阿里云资深副总裁、数据库产品事业部负责人李…...
ADC采样老不准?3分钟学会用中位值平均滤波法提升稳定性(附Arduino/STM32代码)
ADC采样稳定性提升实战:中位值平均滤波法的工程化实现 想象一下你正在用电子秤称量咖啡豆,每次显示的重量都不一样——这种烦恼和ADC采样不准如出一辙。本文将带你用工程师的视角,重新认识这个看似简单却暗藏玄机的技术问题。 1. 为什么你的A…...
别再只用plot了!用Matlab的polarplot函数5分钟搞定天线方向图可视化
用Matlab的polarplot函数5分钟搞定专业级天线方向图 在通信工程和雷达系统设计中,天线方向图的可视化是评估性能的关键环节。传统的直角坐标系plot函数虽然简单,但无法直观展示天线辐射特性随角度变化的完整信息。这就是为什么极坐标图成为天线工程师的标…...
