大数据
-
GaussDB(DWS)性能调优:indexscan导致的性能问题识别与优化 #【玩转PB级数仓GaussDB(DWS)】
通常跑批加工场景下,都是大数量做关联操作,通常不建议使用索引。有些时候因为计划误判导致使用索引的可能会导致严重的性能问题。本文从一个典型的索引导致性能的场景重发,剖析此类问题的特征,定位方法和解决方…
-
GaussDB(DWS)迁移 - oracle兼容 -- regexp_count
src 指定要搜索的字符串 pattern 指定REGEXP_COUNT要搜索的正则表达式 pos position是一个整数值,用于表明REGEXP_COUNT要在源字符串中开始搜索的位置。缺省值为1。 modifier modifier用于指定控制模式匹配行为的值…
-
GaussDB(DWS)运维 -- values子句做MERGE数据源导致SQL执行不下推的改写方案
现网做实时接入的时候,有的时候会使用MERGE INTO语句实现类似UPSERT的功能。这种场景下MERGE INTO语句的USING部分的数据位VALUES子句,为了后续的SQL语句中描述方便,需要对VALUES子句的输出命名别名。USING子句的…
-
GaussDB(DWS)运维 -- 常见问题分析 -- 更新报错ERROR:Non-deterministic UPDATE
【问题根因】 一条SQL语句中同一个元组被多次更新,详细以下面case为例说明 postgres=# CREATE TABLE public.t1(a int, b int) WITH(orientation = column); NOTICE: The 'DISTRIBUTE BY' clause is not specified.…
-
GaussDB(DWS)迁移 - teredata兼容 - 函数 - pivot/unpivot改写
【概要】 pivot/unpivot是teredata中用来做行列转换的操作,常用于报表展示场景。GaussDB(DWS)当前并不支持 pivot/unpivot 操作,本文尝试从业务改写的方式,在GaussDB(DWS)中实现类似的功能 【预置条件】 DROP TA…
-
GaussDB(DWS)迁移-upsert支持
GaussDB(DWS)从8.1.1版本开始支持UPSERT功能,8.1.1版本之前建议使用如下的UDF实现UPSERT -- upStr为拼接的update语句 -- inStr为拼接的insert语句 -- 适合update记录数>insert记录数的场景 CREATE OR REPLACE F…
-
GaussDB(DWS)迁移 - oracle兼容 -- dayof
CREATE OR REPLACE FUNCTION public.dayof(pg_catalog.date) RETURNS integer LANGUAGE sql STABLE NOT FENCED SHIPPABLE AS $function$ SELECT (EXTRACT(DOW from $1) + 1)::INTEGER $function$ ; CREATE OR REPLA…
-
GaussDB(DWS)迁移 - oracle兼容 -- weekof
CREATE OR REPLACE FUNCTION public.weekof(pg_catalog.timestamptz) RETURNS integer LANGUAGE sql STABLE NOT FENCED SHIPPABLE AS $function$ SELECT (EXTRACT(WEEK from $1) )::INTEGER $function$ ; CREATE OR…
-
GaussDB(DWS)分布式计算的倾斜优化
数据倾斜问题是分布式架构的重要难题,它破坏了MPP架构中各个节点对等的要求,导致单节点(倾斜节点)所存储或者计算的数据量远大于其他节点,造成以下危害: 存储上的倾斜会严重限制系统容量,在系统容量不饱和的…
-
GaussDB(DWS)运维 -- SQL操作 -- 查找冗余索引
【简介】 索引是常见的查询性能优化手段,但索引本身也需要占用一定的磁盘空间,同时也会降低数据入库的性能。通过学习和了解GaussDB(DWS)的btree索引和cbtree的机制,本文提供一种依靠索引元数据来识别表上索引冗…