• [问题求助] Gaussdb划分资源池之后share_buffer如何工作
    1、gaussdb数据库划分资源池并绑定用户之后数据的操作是否会继续占用shared_buffer、work_mem,temp_mem?
  • [问题求助] GaussDB支持类似PostgreSQL Publication/Subscription吗?
    可以参考: cid:link_0订阅和发布在异步处理场景广泛使用,包括PostgreSQL、MySQL、Oracle等数据库都提供了响应的支持。 但是测试GaussDB的时候,未发现相关的功能。  请问下, GaussDB有类似的功能吗?没有是否有规划? 
  • [问题求助] gaussdb客户端gsql连接报错
     1、客户端gsql连接gaussdb数据库报错,那么服务端如何生成ssl证书呢,具体生成证书步骤有哪些? 
  • [问题求助] GaussDB有域类型功能吗
    使用 CREATE DOMAIN test_domain AS INT CHECK (VALUE > 0) 会报错。GaussDB有域类型功能吗? 如果没有,有计划提供吗?
  • [问题求助] 创建函数提示 syntax error at or near "ref"
    如下CREATE OR REPLACE FUNCTION show_cities() RETURNS refcursor AS $$ DECLARE ref refcursor; -- Declare a cursor variable BEGIN OPEN ref FOR SELECT city, state FROM cities; -- Open a cursor RETURN ref; -- Return the cursor to the caller END; $$ LANGUAGE plpgsql;这个函数在PostgreSQL可以工作。查询GaussDB官网,貌似也是支持这个语法的,但是没找到示例。请问是GaussDB不支持吗?有没有替代写法?
  • [问题求助] GaussDB有lock_timeout对应的配置项吗
    使用 set LOCK_TIMEOUT=10  GaussDB会报错。 查询了GaussDB文档, 发现有个类似的配置项: update_lockwait_timeout , 但感觉这个配置项和Postgre的 lock_timeout含义还是不完全一样。 但是搜索论坛,发现有些案例 cid:link_0  里面提到了 lock_timeout 配置项。  GaussDB有lock_timeout对应的配置项吗? 如果没有,有计划提供吗? 在使用JAVA的 R2DBC驱动(异步驱动)的时候, 会用到这个参数设置,如果连接GaussDB,会报错。  public Mono<Void> setLockWaitTimeout(Duration lockTimeout)执行这个方法会调用 set LOCK_TIMEOUT=10, GaussDB会报错。
  • [问题求助] SELECT pg_type.* FROM pg_catalog.pg_type 缺少oid字段
    使用SQL语句: SELECT pg_type.*FROM pg_catalog.pg_type GaussDB不包含oid字段,而PostgreSQL会包含。 这个算不算BUG?这个问题可能会导致大量ORM框架的不兼容问题,在获取数据库类型的时候,需要依赖OID做判断。 尽管使用下面的方法可以规避: SELECT pg_type.*,gp_type.oidFROM pg_catalog.pg_type    
  • [问题求助] GaussDB的CCN节点的主要作用是什么
    1、gaussdb的CCN节点的主要作用是什么?
  • [课程学习] 【常见FAQ】GaussDB入门级开发者认证常见FAQ
    1、数据库查询半连接什么时候用呢?"半连接"(Semi-join)主要用于处理涉及多个表的查询,特别是当一个表中的数据需要与另一个表中的数据进行匹配时。半连接通常用于以下几种情况:1)存在性检查:当你只需要知道是否存在满足条件的记录,而不需要返回具体的记录内容时。例如,你可能只想知道某个用户是否购买过某件商品,而不是获取所有该用户的购买记录。2)减少数据量:通过先执行连接操作,然后只选择那些在另一张表中有匹配项的行,可以有效地减少后续处理的数据量,从而提高查询效率。3)避免不必要的数据传输:在分布式数据库系统中,半连接可以帮助减少从远程节点传输大量数据的需求,因为只有那些确实有匹配项的行才会被传输和进一步处理。4)优化复杂查询:在复杂的SQL查询中,使用半连接可以简化逻辑并提高性能,特别是在涉及到多表连接且需要对结果集进行进一步过滤或聚合的情况下。 2、系统表和系统视图的区别是什么?系统表和系统视图都是用来存储数据库的元数据信息,主要区别如下:1)系统表是数据库内部用于存储关于数据库结构、对象和其他重要信息的数据表, 而系统视图则是基于系统表构建的虚拟表,它提供了一种更易于理解和使用的接口来访问系统表中的数据。2) 由于系统表的结构较为复杂,直接使用时需要具备一定的专业知识才能正确解读其内容。而系统视图通过预定义好的查询语句将复杂的系统表信息以更加直观的方式展示给用户,提高了查询的效率和准确性。 3、基于时间点恢复是日志恢复吗?基于时间点恢复(PITR)是基于日志恢复的一种实现方式,它是依赖于日志恢复的。 具体来说, GaussDB使用WAL (Write-Ahead Logging ) 日志来记录所有数据库的修改操作,这些日志为基于时间点恢复提供了时间线依据。在恢复过程中,数据库系统会根据指定的时间点,通过分析和应用WAL日志中的记录,将数据库恢复到该时间点的状态。 4、购买数据库实例时,安全组是什么意思呢?安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。 5、SQL诊断及SQL优化怎么完成?关于SQL诊断:1)定位问题。 首先检查操作系统、硬件、网络等是否存在问题,然后确定是系统级、会话级还是特定SQL的问题,然后开启并分析慢查询日志,找出执行时间过长的SQL语句,使用工具如SHOW STATUS、SHOW VARIABLES、SHOW PROCESSLIST等命令监控数据库性能指标 。 2) 使用诊断工具。 3) 分析查询计划。使用EXPLAIN或EXPLAIN ANALYZE查看SQL查询的执行计划,找出性能瓶颈关于SQL优化:1) 优化查询语句。2)调整数据库配置。根据系统需求调整缓存大小、连接池大小等配置参数,以提升数据库性能。 3) 优化索引。定期检查和优化索引结构,删除冗余索引,重建索引以提升查询性能。4)使用优化工具。 6、数据库函数和存储的不同之处?数据库函数更适合用于简单的计算和查询逻辑,返回单个值或表。存储过程返回多个值或者没有返回值,更适合用于复杂的业务逻辑处理,涉及数据的增删改和事务控制。数据库函数只可以有输入参数。而存储过程可以有输入参数、输出参数和输入输出参数。
  • GaussDB数据倾斜的处理方法
    GaussDB数据倾斜的处理方法如下:存储层数据倾斜选择合适的分布列:在创建表时,应选择键值重复度小、数据分布比较均匀的列作为分布列,如采用Hash分布策略时,需确保分布列能使数据均匀分布在各个数据节点上。若分布列选择不当导致数据倾斜,需重新选择分布列并重建表。数据重分布:对于已存在数据倾斜的表,可以使用数据重分布功能来重新调整数据的分布。例如,在GaussDB中,可以使用ALTER TABLE语句来修改表的分布列或分布策略,从而实现数据的重新分布。计算层数据倾斜RLBT特性:GaussDB提供了RLBT(Runtime Load Balance Technology)方案来解决运行时的计算倾斜问题。该特性由参数skew_option控制,可自动识别和解决计算过程中的数据倾斜。优化SQL语句:对于group by、over()、distinct算子引起的计算倾斜,可以采用增加过滤条件、减少数据量来降低重分布带来的成本开销,或者根据实际情况开启SMP并行,加快执行速度。如果计算倾斜来自于join关联,可尝试调整join条件或优化查询逻辑。其他方法处理空值引发的数据倾斜:可以直接不让null值参与join操作,即不让null值有shuffle阶段,或者给null值赋一个固定值,使其参与计算时不会导致数据倾斜。使用视图或函数获取倾斜情况:GaussDB提供了一些视图和函数来帮助获取表的倾斜情况,如pgxc_get_table_skewness视图和table_distribution函数等。通过这些视图和函数,可以快速定位存在数据倾斜的表,以便进行针对性的处理。
  • GaussDB数据库分布式架构排查数据倾斜的表数据方法
    在GaussDB数据库分布式架构中,排查数据倾斜的表数据可以通过以下方法:存储层数据倾斜排查使用系统视图查询:GaussDB提供了pgxc_get_table_skewness视图,可以查询各表的数据倾斜情况。通过执行SELECT * FROM pgxc_get_table_skewness;语句,可以获取表名、倾斜节点、倾斜节点的数据量以及倾斜率等信息,从而找出存在数据倾斜的表。分析表分布列:检查表的分布列选择是否合理。通常,数据表在各DN上是hash分布的,分布列的选择会影响数据的分布情况。如果分布列的值分布不均匀,可能导致数据倾斜。可以通过查看表的定义和数据分布情况,选择更合适的分布列来解决数据倾斜问题。查看数据文件大小:在各DN实例的数据存储目录中,查看表的数据文件大小。如果某个DN上的数据文件大小明显大于其他DN,可能存在数据倾斜。可以通过比较各DN上的数据文件大小,找出数据倾斜的表。计算层数据倾斜排查查看执行计划:在执行查询时,查看查询的执行计划,关注是否存在Redistribute算子。如果Redistribute算子的重分布列上的数据存在倾斜,可能导致计算倾斜。可以通过分析执行计划,找出可能导致计算倾斜的查询和表。使用RLBT方案:GaussDB的RLBT(Runtime Load Balance Technology)方案可以用于解决运行时的计算倾斜问题。该方案通过统计信息识别、hint方式指定以及规则识别等手段,预先识别计算过程中的重分布列是否存在倾斜数据,并进行相应的优化。分析查询语句:对于复杂的查询语句,分析其中间结果和过滤条件,判断是否可能导致数据倾斜。例如,outer join在匹配失败的情况下会补空产生大量NULL值,如果接下来在补空列上进行join或者group by操作,就可能导致NULL值倾斜。通过以上方法,可以在GaussDB数据库分布式架构中有效地排查数据倾斜的表数据,并采取相应的措施进行优化和调整。
  • GaussDB数据库统计信息自动收集时间设置和查看执行时间的方法
    以下是关于GaussDB数据库统计信息自动收集时间设置和查看执行时间的方法:设置统计信息自动收集时间GaussDB数据库的统计信息自动收集时间可以通过创建定时任务来设置。以下是一个示例,展示如何使用DBE_TASK.ID_SUBMIT函数创建一个定时任务,使其在每天凌晨两点执行统计信息收集:CALL DBE_TASK.ID_SUBMIT (job_id, 'gather_stats_procedure', '2025-03-16 02:00:00', 'interval ''1 day''');在上述示例中,'gather_stats_procedure'是一个存储过程,用于执行统计信息收集。'2025-03-16 02:00:00'是任务的开始时间,设置为凌晨两点。'interval ''1 day'''表示任务每天执行一次。查看统计信息自动执行时间要查看统计信息自动执行时间,可以查询数据库中的定时任务相关视图。在GaussDB中,可以使用以下视图来查看定时任务的详细信息:MY_JOBS视图:该视图显示当前用户所属的定时任务详情,包括任务的开始时间、上次运行时间、下次执行时间等。通过查询该视图,可以获取统计信息自动执行的时间信息。以下是一个示例查询,展示如何使用MY_JOBS视图查看定时任务的详细信息:SELECT job, dbname, start_date, last_date, this_date, next_date, broken, status, interval, failures, whatFROM my_jobs;在上述示例中,查询结果将显示定时任务的相关信息,包括任务的开始时间和下次执行时间,从而可以确定统计信息自动执行的时间。通过以上方法,您可以在GaussDB数据库中设置统计信息自动收集时间,并查看其执行时间。 要将GaussDB数据库WDR报告的两次快照间隔时间从默认的1小时更改为30分钟,可以按照以下步骤进行操作:登录数据库管理平台登录到GaussDB数据库的管理平台,进入到数据库实例的管理页面。进入WDR报告页面在实例管理页面中,找到并点击指定的实例名称,进入实例详情页面。然后在左侧导航栏中点击“诊断优化>性能报告>WDR报告”,显示WDR报告页面。修改快照间隔时间在WDR报告页面中,找到“获取快照数据开关”的选项,点击该选项后,系统会提示输入新的快照间隔时间。将间隔时间从默认的1小时修改为30分钟,然后点击“确定”或“保存”按钮,完成修改。确认修改结果修改完成后,系统会提示修改成功。可以在WDR报告页面中查看新的快照间隔时间是否已经生效。如果生效,系统将按照新的间隔时间进行快照采集。通过以上步骤,就可以成功地将GaussDB数据库WDR报告的两次快照间隔时间从1小时更改为30分钟。
  • [问题求助] opengauss 5.0.2 : 出现错误提示 org.opengauss.core.v3.QueryExecutorImpl ERROR : buffer is empty,求助;
    环境:JDK1.8Spring boot 2.7.18mybatis连接池(使用过2种):druid 、hikari驱动类driver-class-name(使用过2种):  org.postgresql.Driver  或者 org.opengauss.Driver 程序日志、opengauss日志中,都出现很多下列错误,求助:org.opengauss.core.v3.QueryExecutorImpl ERROR  IO Exception.recieved packetType:69last PacketType:-1connection info:192.168.0.1:34352/192.168.0.2:26000buffer :buffer is empty截图如下:
  • [问题求助] GaussDB数据库TOPSQL工具
    1、华为GaussDB是否有TOPSQL工具可以分析历史SQL问题,如果有具体根据哪些视图来排查问题,是否需要设置相应的参数才能使用响应的TOPSQL工具2、华为gaussdb数据库查询pgxc_wlm_session_info视图为什么都没有数据
  • [问题求助] GaussDB数据库WDR报告两次快照时间间隔修改
    1、gaussdb数据库WDR报告默认两次快照间隔时间为1小时,两次快照时间更改为30min如何修改;2、gaussdb数据库统计信息自动收集时间放在凌晨两点,如何设置该时间点。怎么查看统计信息自动执行时间
总条数:293 到第
上滑加载中