gaussdb(for mysql)剪枝功能,让查询性能提升70倍!-编程思维

作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。 近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率? 在回答这个问题之前,我们先了解一下DISTINCT。 在SQL语句中,DISTINCT关键词用于返回唯一不同的值,使用场景多

数仓调优实践丨sql改写消除相关子查询-编程思维

本文分享自华为云社区《【调优实践】SQL改写消除相关子查询》,作者: 门前一棵葡萄树 。 一、子查询 GaussDB(DWS)根据子查询在SQL语句中的位置把子查询分成了子查询、子链接两种形式。 子查询SubQuery:对应于查询解析树中的范围表RangeTblEntry,更通俗一些指的是出现在FROM语句后面的独立的SELECT语句。 子链接SubLink:对应于查询解析树中的表达式,更通俗

数据库编程大赛:一条sql计算扑克牌24点-编程思维

你是否在寻找一个平台,能让你展示你的SQL技能,与同行们一较高下?你是否渴望在实战中提升你的SQL水平,开阔你的技术视野?如果你对这些都感兴趣,那么本次由NineData主办的《数据库编程大赛》,将是你的最佳选择! 大赛奖品 本次数据库编程大赛的奖项安排:一等奖(1人)、二等奖(2人)、三等奖(3人)、普照纪念奖(30人)。 数据库编程大赛奖品,欢迎来挑战! 比赛玩法 参赛时间 2023.1

数仓性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路-编程思维

本文分享自华为云社区《GaussDB(DWS)性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路》,作者:Zawami 。 1、改写场景 本套路应用于子查询中含有row_number() over(partition by order by) rn,并仅把rn列用于分类排序后筛选最大值的场景。 2、性能分析 GaussDB中SQL语句的执行很多时候是流式的,即对每

数仓实践丨表扫描时过滤行数过多引起的性能瓶颈问题-编程思维

本文分享自华为云社区《GaussDB(DWS)性能调优:表扫描时过滤行数过多引起的性能瓶颈问题案例》,作者: O泡果奶~ 。 1、【问题描述】 SQL语句执行过程中,对12亿数据量的大表进行扫描,过滤99%的数据仅留617行数据,性能瓶颈位于扫描该表这里。 2、【原始语句】 set search_path = 'bi_dashboard'; WITH F_SRV_DB_DIM_PRD_D

proxy下的prepare透传,让gaussdb(for mysql)更稳固,性能更卓越-编程思维

本文分享自华为云社区《Proxy下的Prepare透传,让GaussDB(for MySQL)更稳固,性能更卓越》,作者: GaussDB 数据库 。 1.引言 在很多业务场景下,数据库应用程序处理大量相同的SQL语句——只需更改SQL语句中的文字或变量值。例如:使用相同的SQL模板进行WHERE查询,SET 更新和VALUES 插入等操作。数据库内部收到SQL语句后,需要对语句进行解析,即翻译

数仓实时场景下表行数估算不准确引起的的性能瓶颈问题案例-编程思维

本文分享自华为云社区《GaussDB(DWS)性能调优:实时场景下表行数估算不准确引起的的性能瓶颈问题案例》,作者: O泡果奶~。 本文针对实时场景下SQL语句因表行数估算不准确而导致语句执行超时报错的案例进行分析。 1、【问题描述】 实时场景下,select查询语句执行时间过长,该语句verbose执行计划中存在nestloop,且使用hint(set (enable_index_nestlo

gaussdb(dws)案例丨merge场景下语句不下推引起的性能瓶颈问题-编程思维

本文分享自华为云社区《GaussDB(DWS)性能调优:MERGE场景下语句不下推引起的性能瓶颈问题案例》,作者:O泡果奶~。 1、【问题描述】 语句执行时间过长,且该语句performance执行计划中SQL Diagnostic Information显示SQL语句不下推,理由为:Type of Record in dual that is not a real table can not

gaussdb(dws)性能调优:sort+groupagg聚集引起的性能瓶颈案例-编程思维

本文分享自华为云社区《GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例》,作者: O泡果奶~ 。 本文针对SQL语句长时间执行不出来,且verbose执行计划中出现Sort+GroupAgg聚集方式的案例进行分析。 1、【问题描述】 语句执行时间过长,2300s+也无法得出结果。从verbose执行计划可以看出存在sort聚合。 2、【原始语句】 SELECT

oracle常用sql语句大全-编程思维

常用Oracle数据库SQL语句汇总。 1、常用操作 --清空回收站purge recyclebin;--查询回收站select * from recyclebin--查询Oracle版本信息select * from v$version--查询Oracle数据库字符集select userenv('language') from dual --清除表数据的2种方法 ①delete from t

【数仓运维实践】关于gaussdb(dws)单sql磁盘空间管控-编程思维

摘要:本文主要讲解数仓运维中遇到单SQL磁盘空间管控问题的解析和方案。 本文分享自华为云社区《GaussDB(DWS)运维 -- 单SQL磁盘空间管控》,作者: 譡里个檔。 【问题描述】 执行部分SQL语句时出现如下报错信息(具体数值可能因为配置有差异),本文针对根因和场景触发场景,确定触发此类问题的根因 The space used on DN (209715224 kB) has excee

gaussdb(dws)运维:导致sql执行不下推的改写方案-编程思维

摘要:本文就针对因USING子句的书写方式可能导致MERGE INTO语句的执行不下推的场景,对USING子句的SQL语句进行改写一遍,整个SQL语句可以下推。 本文分享自华为云社区《GaussDB(DWS)运维 -- values子句做MERGE数据源导致SQL执行不下推的改写方案》,作者: 譡里个檔。 现网做实时接入的时候,有的时候会使用MERGE INTO语句实现类似UPSERT的功能。这

阿里云栖号-编程思维

数据分析的语言接口OLAP计算引擎是一架机器,而操作这架机器的是编程语言。使用者通过特定语言告诉计算引擎,需要读取哪些数据、以及需要进行什么样的计算。编程语言有很多种,任何人都可以设计出一门编程语言,然后设计对应的编译器做解析。编程语言从分类上来说,可以分为命令式,声明式。命令式编程语言是我们最常见的编程语言,C/C++/Java等都是命令式编程语言,这类语言明确的告诉机器应该执行什么样的指令,留

mysql数据库的一些基本操作---------------sql语法_对愁眠-编程思维

MySql数据库是比较常用的关系型数据库,操作用的是sql语句,下面来说一说MySql的一些基本操作 MySql数据库是一种C/S型的模式,即客户端/服务器端,对应到具体应用上,便是bin目录下的mysql.exe和mysqld.exe,mysql是客户端,mysqld是服务器端。 所以先要启动mysqld.exe服务,然后用mysql.exe登陆。 1.mysql登陆   打开cmd命令窗口,

9个sql运维常遇到的问题_华为云开发者联盟-编程思维

摘要:本文重点介绍单个SQL语句持续执行慢的场景。 本文分享自华为云社区《GaussDB(DWS) SQL性能问题案例集》,作者:黎明的风。 本文重点介绍单个SQL语句持续执行慢的场景。我们可以对执行慢的SQL进行单独分析,SELECT、INSERT、UPDATE等语句都可以使用explain verbose + SQL语句输出查询计划来进行分析,这样只输出查询计划,语句不会被实际的执行。 如果

sql 抽象语法树及改写场景应用 - 编程思维

1 背景我们平时会写各种各样或简单或复杂的sql语句,提交后就会得到我们想要的结果集。比如sql语句,”select * from t\_user where user\_id > 10;”,意在从表t\_user中筛选出user\_id大于10的所有记录。你有没有想过从一条sql到一个结果集,这中间经历了多少坎坷呢?2 SQL引擎从MySQL、Oracle、TiDB、CK,到Hive、HB

sql 难点解决:记录的引用 - 编程思维

【摘要】        SQL 虽然是针对记录的集合进行运算, 但在记录的多次利用以及有序运算却经常要重复计算,效率不佳。而集算器 SPL 则要直观许多,可以按自然思维习惯写出运算。这里对 SQL 和集算器 SPL 在记录的利用及有序运算方面进行了对比,如果需要了解更多,请前往乾学院:SQL 难点解决:记录的引用! 1、 求最大值 / 最小值所在记录  示例 1 :计算招商银行 (600036)