检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
2个用户登录相同数据库human_resource,分别执行的查询语句如下:SELECT count(*) FROM areas,查询同一张表areas时,查询结果却不一致。 原因分析 请先判断同名的表是否确实是同一张表。在关系型数据库中,确定一张表通常需要3个因素:database,s
T语句中表达式hashtext(ifnull(a,b))存在多个collation造成冲突,执行报错。 处理方法 当字符串表达式中collation有多个时,可手动指定COLLATE collation_name。 执行SELECT时,指定表达式ifnull(a,b)的排序规则为
执行Plan Hint的Scan方式不生效 问题现象 DWS中指定了Plan Hint的scan方式,但是并未生效。 原因分析 Plan Hint语法使用错误。Plan Hint的Scan语法应在SELECT语句中增加“/*+ indexscan(table_name index_name)
执行CREATE SCHEMA语句时,报错SCHEMA已存在 问题现象 执行CREATE SCHEMA语句时,报错要创建的schema已存在。 1 ERROR: schema "schema" already exists 原因分析 在SQL语句中,字段名称是区分大小写的,默认为小写字段名。
FULL操作,这种场景下需要查找出哪些表执行过UPDATE; 判断一张表是否是维度表,是否可以从Hash表变更为复制表,可以查看这张表是否执行过UPDATE或DELETE,如果执行过UPDATE或DELETE操作,则不能修改为复制表。 处理方法 通过以下命令查找哪些表执行过UPDATE及DELETE操作:
后端当前总体状态。取值如下: active:后台正在执行查询。 idle:后台正在等待新的客户端命令。 idle in transaction:后端在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后端在事务中,但事务中有语句执行失败。 fastpath function
ing中存在占位符时使用,即动态SQL语句执行时,bind_argument将替换相对应的占位符。要注意的是,bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象。如果存储过程需要通过声明参数传递数据库对象来构造动态SQL语句(常见于执行DDL
ing中存在占位符时使用,即动态SQL语句执行时,bind_argument将替换相对应的占位符。要注意的是,bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象。如果存储过程需要通过声明参数传递数据库对象来构造动态SQL语句(常见于执行DDL
ing中存在占位符时使用,即动态SQL语句执行时,bind_argument将替换相对应的占位符。要注意的是,bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象。如果存储过程需要通过声明参数传递数据库对象来构造动态SQL语句(常见于执行DDL
方法一:对表定期做统计优化查询。 如果频繁对表执行INSERT语句插入数据,需要定期对表执行ANALYZE: 1 ANALYZE table_name; 如果频繁对表执行DELETE语句删除数据,需要定期对表执行VACUUM FULL: 1 VACUUM FULL table_name; 执行VACUUM
在SQL中,UNION是一个非常强大的功能,UNION操作符用于合并两个或多个SELECT语句的结果集。合并时,两个表对应的列数和数据类型必须相同,并且相互对应。各个SELECT语句之间使用UNION或UNION ALL关键字分隔。 UNION在合并两个或多个表时会执行去重操作,而UNION
在SQL中,UNION是一个非常强大的功能,UNION操作符用于合并两个或多个SELECT语句的结果集。合并时,两个表对应的列数和数据类型必须相同,并且相互对应。各个SELECT语句之间使用UNION或UNION ALL关键字分隔。 UNION在合并两个或多个表时会执行去重操作,而UNION
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表采用的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示使用的JOIN算法。 执行计划的最关键部分是语句的预计执行开销,即计划生成器估算执行该语句将花费多长的时间。 若指定了
删除表数据后执行了VACUUM,但存储空间并没有释放 问题现象 删除表数据后执行了VACUUM,但是存储空间并没有释放。 原因分析 执行VACUUM时,对某些表可能没有权限,或者数据库本身并没有太多的数据膨胀。 执行VACUUM,默认清理当前用户在数据库中拥有权限的每一个表,没有权限的表则直接跳过回收操作。
使用string_agg函数查询执行结果不稳定 问题现象 SQL语句查询结果不一致。 原因分析 某业务场景中的SQL语句中使用了string_agg函数,语句逻辑如下: 执行如下SQL语句: 1 2 3 4 select count(*) from (select deptno,
显示查询在计划节点上的执行时间。 Contribution (%) 显示查询在计划节点上的执行时间占整个查询执行时间的百分比。 Self Cost 显示在计划节点上执行查询的“Total Cost”,即为所有子节点的总开销。 Total Cost 显示在计划节点上执行查询所消耗的总成本。
对系统表gs_wlm_session_info执行TRUNCATE命令报错 问题现象 清理磁盘空间,因系统表pg_catalog.gs_wlm_session_info较大(有20G),在不需要查询历史sql语句的前提下,对此系统表执行TRUNCATE命令,执行时报错“permission denied
timeoutTime. 原因分析 当语句执行时间超过statement_timeout参数设置的时间时,该语句将会报错并退出执行。 处理方法 方式一:通过控制台修改statement_timeout参数。 登录GaussDB(DWS)管理控制台。 在左侧导航栏中,单击“集群管理”。 在集群列
通用户执行语句时会进入该状态,管理员用户不受管控。可通过终止一部分语句或调大内存参数规避,如果各DN的内存使用都不高,也可考虑关闭动态资源管理enable_dynamic_workload(enable_dynamic_workload = off)。 场景二:执行计划中的or条件对普通用户执行语句逐一判断耗时
事务指一个操作,由多个步骤组成,要么全部成功,要么全部失败。 数据库事务(TRANSACTION)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成(通常由事务开始与事务结束之间执行的全部数据库操作组成),这些操作要么全部执行,要么全部不执行,是一个不可分割的执行单位。