检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用string_agg函数查询执行结果不稳定 问题现象 SQL语句查询结果不一致。 原因分析 某业务场景中的SQL语句中使用了string_agg函数,语句逻辑如下: 执行如下SQL语句: 1 2 3 4 select count(*) from (select deptno,
timeoutTime. 原因分析 当语句执行时间超过statement_timeout参数设置的时间时,该语句将会报错并退出执行。 处理方法 方式一:通过控制台修改statement_timeout参数。 登录GaussDB(DWS)管理控制台。 在左侧导航栏中,单击“专属集群 > 集群列表”。
删除表数据后执行了VACUUM,但存储空间并没有释放 问题现象 删除表数据后执行了VACUUM,但是存储空间并没有释放。 原因分析 执行VACUUM时,对某些表可能没有权限,或者数据库本身并没有太多的数据膨胀。 执行VACUUM,默认清理当前用户在数据库中拥有权限的每一个表,没有权限的表则直接跳过回收操作。
后端当前总体状态。取值如下: active:后台正在执行查询。 idle:后台正在等待新的客户端命令。 idle in transaction:后端在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后端在事务中,但事务中有语句执行失败。 fastpath function
显示查询在计划节点上的执行时间。 Contribution (%) 显示查询在计划节点上的执行时间占整个查询执行时间的百分比。 Self Cost 显示在计划节点上执行查询的“Total Cost”,即为所有子节点的总开销。 Total Cost 显示在计划节点上执行查询所消耗的总成本。
对系统表gs_wlm_session_info执行TRUNCATE命令报错 问题现象 清理磁盘空间,因系统表pg_catalog.gs_wlm_session_info较大(有20G),在不需要查询历史sql语句的前提下,对此系统表执行TRUNCATE命令,执行时报错“permission denied
通过OBS外表导入数据到GaussDB(DWS)时,执行导入操作的用户必须具备数据源文件所在的OBS桶和对象的读取权限。 通过OBS外表导出数据时,执行导出操作的用户必须具备数据导出路径所在的OBS桶和对象的读取和写入权限。 有关配置OBS权限的具体操作,请参见《对象存储服务控制台指南》中的配置桶ACL和“配置对象ACL”章节。
算子级调优介绍 一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。 如下面的执行过程信
单击“参数修改”页签,搜索“max_active_statements”参数,修改其参数值,单击“保存”,确认无误后再单击“保存”。 场景二:执行计划中的or条件对普通用户执行语句逐一判断耗时 执行计划中的or条件里有权限相关的判断,此场景多发生在使用系统视图时。例如以下sql: 1 2 3 4 5 6 7 8 SELECT
-t 指定导出的表(或视图、序列、外表),可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。当使用通配符指定多个表对象时,注意给pattern打引号,防止shell扩展通配符。 单个表:-t schema.table 多个表:多次输入-t schema.table 单个表:-t
执行gsql连接数据库命令提示gsql:command not found 问题现象 执行gsql -d postgres -p 26000 -r出现如下错误: 1 gsql:command not found… 原因分析 没有在gsql的bin目录下执行。 未执行环境变量。 处理方法
算子级调优介绍 一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。 如下面的执行过程信
执行业务报错:unable to get a stable set of rows in the source table 问题现象 MERGE INTO的作用是将源表内容根据匹配条件对目标表做更新或插入,当目标表匹配到多行满足条件时,GaussDB(DWS)有以下两种行为: 业务报错:unable
PARTITION时,无论它们的相对顺序是什么,GaussDB(DWS)总会先执行DROP PARTITION再执行ADD PARTITION。执行完DROP PARTITION删除末尾分区后,再执行ADD PARTITION操作会出现分区间隙,导致报错。 解决办法 为防止出现分区间隙,需要将ADD
业务执行中报错:An I/O error occurred while sending to the backend 问题现象 使用客户端连接GaussDB(DWS)执行业务过程中出现报错“An I/O error occurred while sending to the backend
gds_ctl 背景信息 gds_ctl是一个批量控制GDS启停的脚本工具,一次执行可以在多个节点上启动/停止相同端口的GDS服务进程,并在启动时为每一个进程设置看护程序,用于看护GDS进程。 注意事项 执行脚本前需切换到GDS用户,必须在普通用户下执行脚本gds_ctl。 脚本需要在python
EXECUTE 功能描述 用来执行一个前面准备好的预备语句。由于预备语句只在会话的生命期里存在,那么该预备语句必须在当前会话中由一个更早执行的PREPARE语句创建。 注意事项 如果创建预备语句的PREPARE语句声明了一些参数,那么传递给EXECUTE语句的必须是一个兼容的参数集,否则就会生成一个错误。
上述问题中撤销user3对表t1的访问权限未生效是因为:之前执行过GRANT SELECT ON table t1 TO public;这条SQL语句,该语句中关键字public表示该权限要赋予给所有角色,包括之后新创建的角色,所以新用户user3对该表也有访问权限。public可以看做是一个隐含定义好的组,它包含所有角色。
注意事项 如果给定一个模式名,那么该类型将被创建在指定的模式中,否则它会被创建在当前模式中。类型名称必须与同一个模式中任何现有的类型或者域有所区别(因为表具有相关的数据类型,类型名称也必须与同一个模式中任何现有表的名字不同)。 语法格式 1 2 3 4 5 6 7 8
注意事项 如果给定一个模式名,那么该类型将被创建在指定的模式中,否则它会被创建在当前模式中。类型名称必须与同一个模式中任何现有的类型或者域有所区别(因为表具有相关的数据类型,类型名称也必须与同一个模式中任何现有表的名字不同)。 语法格式 1 2 3 4 5 6 7 8