大数据
-
GaussDB(DWS)性能调优:HashAgg策略优化
【问题背景】 GROUP BY是业务中常见的SQL操作,DWS使用HashAgg算子承载GROUP BY计算逻辑。在不同场景下具体实现行为会有一些差别,主要有以下三种形式。 以如下表定义为例 CREATE TABLE t1(a int, b int, c int) DI…
-
GaussDB(DWS)运维 -- 行存存储和列存转换
---- 使用场景: 行存表转列存表/列存表转行存表 转换自定义函数-- 1. 可保留注释、索引和约束的前后一致性-- 2. 建议打开视图重建功能,否则表存在依赖对象时会转换失败-- 3. 日志会记录详细的执行日志信息,包括…
-
GaussDB(DWS)运维 -- 开启GTM线程池功能
8.2.1及以上集群版本支持GTM线程池功能。线程池功能开启时,GTM工作线程不会与连接强绑定,一个工作线程可以处理多条连接,当前连接处于空闲状态,该工作线程继续处理连接队列里的其他待处理的连接,提高GTM处理高…
-
GaussDB(DWS)性能调优--LEFT JOIN不能走索引扫描的性能优化
DWS的MPP分布式架构,数据重分布动作导致NestLoop+IndexScan的使用场景受限,特别是LEFT JOIN场景下。针对LEFT JOIN特定场景,本文提供一种改写方案实现业务SQL性能提升。 1 预置条件 DROP TABLE tab1; DROP TABLE …
-
GaussDB(DWS)运维 -- 资源管理SQL白名单语句
1. 现网场景 某客户现网出现连接数不足的报错,查看语句执行状态视图pgxc_stat_activity,发现大量简单语句‘select 1’处在等待状态(waiting in ccn queue)状态 2. 根因分析 2.1 'select1'从哪里来 外部业务经常…
-
GaussDB(DWS)迁移 - teredata兼容 -- macro兼容 #
Teradata的宏是一组可以接受参数的SQL语句,通过调用宏名称来执行一段SQL语句,执行上类似于DWS的存储过程。在迁移的时候也建议使用DWS的函数替换TeraData的宏。 测试表定义 CREATE SCHEMA test; CREATE TABLE test…
-
GaussDB(DWS)运维 -- 单SQL磁盘空间管控
【问题描述】 执行部分SQL语句时出现如下报错信息(具体数值可能因为配置有差异),本文针对根因和场景触发场景,确定触发此类问题的根因 : The space used on DN (209715224 kB) has exceeded the sql use space lim…
-
GaussDB(DWS)迁移 - oracle兼容 --row_number输出结果不一致
【问题表现】 迁移前后结果集row_number字段值前后不一致,前在DWS上运行不一致 【问题分析】 这种问题大部分都是因为PARTITION BY 列 + ORDER BY 列组合起来不唯一,导致row_number()开窗函数结果集不稳定。 在Ora…
-
GaussDB(DWS)运维 -- 基表统计信息估算不准的常见场景及处理方案
场景1:基表过滤字段存在的隐式类型时,基表行数估算偏小 这种场景绝大部分场景DWS能够处理,但是如果隐式类型转后的结果与统计信息中的字段枚举值的表达式不一样,就会导致估算的严重偏差 原始SQL如下 SELECT * FR…
-
GaussDB(DWS)功能 -- 函数出参
DWS的PL/pgSQL函数/存储过程中有一个特殊的语法PERFORM语法,用于执行语句但是丢弃执行结果的场景,常用于一些状态判断的场景。但是客户往往会不当使用PERFORM语法,导致业务逻辑出错,最常见的就是使用PERFORM执行…