检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
表示该函数在给出同样的参数值时总是返回同样的结果。 STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,因此不会做任何优化。 SHIPPABLE|NOT SHIPPABLE 表示
rows) 由于目标列中的相关子查询(select avg(c2) from t2 where t2.c2=t1.c2)无法提升的缘故,导致每扫描t1的一行数据,就会触发子查询的一次执行,效率低下。如果打开intargetlist参数会把子查询提升转为join,从而提升查询的性能。 gaussdb=#
执行计划如图1所示。该查询实际耗时约12秒。 图1 应用unlogged table案例(一) 优化分析:分析过程如下: 分析该执行计划发现,扫描节点已使用Index Scan,耗时主要在最外层Nest Loop Join的Join Filter计算中,且该计算执行了字符串的加减法和不等值比较。
执行计划如图1所示。该查询实际耗时约12秒。 图1 应用unlogged table案例(一) 优化分析:分析过程如下: 分析该执行计划发现,扫描节点已使用Index Scan,耗时主要在最外层Nest Loop Join的Join Filter计算中,且该计算执行了字符串的加减法和不等值比较。
rows) 由于目标列中的相关子查询(select avg(c2) from t2 where t2.c2=t1.c2)无法提升的缘故,导致每扫描t1的一行数据,就会触发子查询的一次执行,效率低下。如果打开intargetlist参数会把子查询提升转为JOIN,来提升查询的性能: gaussdb=#
表示该函数在给出同样的参数值时总是返回同样的结果。 STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,因此不会做任何优化。 SHIPPABLE|NOT SHIPPABLE 表示
重分布函数 以下函数为重分布期间gs_redis工具所用的系统函数,用户不要主动调用: pg_get_redis_rel_end_ctid(text, name, int, int) pg_get_redis_rel_start_ctid(text, name, int, int)
TCH命令。但是如果使用数组类型作为宿主变量,则一次可以检索多行。数组长度需能容纳查询结果的所有行,否则可能会发生缓冲区溢出。 下面示例为扫描pg_database系统表并且显示所有可用数据库的OID和名称: #include <stdlib.h> #include <stdio
TCH命令。但是如果使用数组类型作为宿主变量,则一次可以检索多行。数组长度需能容纳查询结果的所有行,否则可能会发生缓冲区溢出。 下面示例为扫描pg_database系统表并且显示所有可用数据库的OID和名称: #include <stdlib.h> #include <stdio
TCH命令。但是如果使用数组类型作为宿主变量,则一次可以检索多行。数组长度需能容纳查询结果的所有行,否则可能会发生缓冲区溢出。 下面示例为扫描pg_database系统表并且显示所有可用数据库的OID和名称: #include <stdlib.h> #include <stdio
可以根据情况把可下推函数的函数改成CASE表达式。 避免对索引使用函数或表达式运算。 对索引使用函数或表达式运算会停止使用索引转而执行全表扫描。 尽量避免在where子句中使用!=或<>操作符、null值判断、or连接、参数隐式转换。 对复杂SQL语句进行拆分。 对于过于复杂并且
容错性 当数据库系统发生错误时,以下参数控制服务器处理错误的方式。 exit_on_error 参数说明:打开该开关,ERROR级别报错会升级为PANIC报错,从而可以产生core堆栈。主要用于问题定位和业务测试。 该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
gs_loader 概述 gs_loader工具用于进行数据导入。gs_loader将控制文件支持的语法转换为\COPY语法,然后利用已有的\COPY功能,做主要数据导入工作,同时gs_loader将\COPY结果记录到日志中。 使用gs_loader前请确保gs_loader版本与gsql版本、数据库版本保持一致。
容错性 当数据库系统发生错误时,以下参数控制服务器处理错误的方式。 exit_on_error 参数说明:打开该开关,ERROR级别报错会升级为PANIC报错,从而可以产生core堆栈。主要用于问题定位和业务测试。 该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
购买并通过gsql连接GaussDB实例 本章介绍在管理控制台购买GaussDB实例后,如何使用gsql客户端连接GaussDB实例。更多连接实例方式请参见连接GaussDB实例。 操作流程 操作步骤 说明 准备工作 注册华为账号并开通华为云、实名认证、账户充值,以及对GaussDB进行精细权限管理。
执行计划如图1所示。该查询实际耗时约12秒。 图1 应用unlogged table案例(一) 优化分析:分析过程如下: 分析该执行计划发现,扫描节点已使用Index Scan,耗时主要在最外层Nest Loop Join的Join Filter计算中,且该计算执行了字符串的加减法和不等值比较。
bigint SELECT返回的结果集行数。 L0 n_tuples_fetched bigint 随机扫描行。 L0 n_tuples_returned bigint 顺序扫描行。 L0 n_tuples_inserted bigint 插入行。 L0 n_tuples_updated
描述:如果参数是一个表,则顺序扫描读取的行数目。如果参数是一个索引,则返回索引行的数目。 返回值类型:bigint pg_stat_get_tuples_fetched(oid) 描述:如果参数是一个表,则位图扫描抓取的行数目。如果参数是一个索引,则用简单索引扫描抓取的行数目。 返回值类型:bigint
2147483647。 默认值:10 默认值10,在高并发场景下,兼顾单条插入和批量插入,性能都会有比较好的表现。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:用户在使用sequence大批量导入数据时,可以通过调大该参数,提高插入速度,增加高并发性能;
gs_loader 概述 gs_loader工具用于进行数据导入。gs_loader将控制文件支持的语法转换为\COPY语法,然后利用已有的\COPY功能,做主要数据导入工作,同时gs_loader将\COPY结果记录到日志中。 使用gs_loader前请确保gs_loader版本与gsql版本、数据库版本保持一致。