检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
VAR 功能描述 将新的C数据类型分配给宿主变量。宿主变量必须预先在声明段声明。 对于VAR的用法需要谨慎。使用VAR语句后数据类型的变化可能会导致内存地址无效,从而导致数据变量无效,出现无法成功赋值的场景。 若在宿主变量声明段中确定好数据类型,则无须使用VAR语句。 语法格式 VAR
指定子查询不展开的Hint 功能描述 数据库在对查询进行逻辑优化时通常会将可以提升的子查询提升到上层来避免嵌套执行,但对于某些本身选择率较低且可以使用索引过滤访问页面的子查询,嵌套执行不会导致性能下降过多,而提升之后扩大了查询路径的搜索范围,可能导致性能变差。对于此类情况,可以使用no_expand
EXEC SQL DESCRIBE stmt1 INTO SQL DESCRIPTOR mydesc; 在DESCRIBE和FETCH语句中,INTO和USING关键词的使用相似:它们产生结果集以及一个描述符区域的元数据。 从头部检索一个描述符区域的值并且将其存储到一个宿主变量中:
index_list为参数化路径使用的索引序列,为空格隔开的字符串。 示例 nestloop_index示例: 在t1表上传入t2,t3表的t2.c1和t3.c2进行索引扫描(参数化路径): gaussdb=# explain (costs off) select /*+nestloop_index(t1
index_list为参数化路径使用的索引序列,为空格隔开的字符串。 示例 nestloop_index示例: 在t1表上传入t2,t3表的t2.c1和t3.c2进行索引扫描(参数化路径): gaussdb=# explain (costs off) select /*+nestloop_index(t1
取值范围:由一个或多个模式名构成的字符串,不同的模式名用逗号隔开。 设置为'"$user",public'时,支持共享数据库(没有用户具有私有模式和所有共享使用public),用户私有模式和这些功能的组合使用。可以通过改变默认搜索路径来获得其他效果,无论是全局化的还是私有化的。 设置为空字符串
它也有一些缺点,比如会消耗大量的内存空间,可能会导致内存溢出等问题。因此,在使用WorkTable Scan时,需要根据具体情况进行调整和优化。 典型场景 大表查询:当查询涉及到大表时,WorkTable Scan可以将查询结果分成多个工作单元,每个工作单元处理一部分数据,从而提高查询效率。
rows) 可以看到对sublink进行了material操作,若不使用该hint,则会使用hashed。 hashed_sublink 建表和准备: set work_mem='64kB'; --将work内存缩小便于复现该场景 set explain_perf_mode = pretty;
ussDB的场景,请使用此驱动包。 gsjdbc4.jar:主类名为“org.postgresql.Driver”,数据库连接的url前缀为“jdbc:postgresql”,该驱动包适用于从PG数据库迁移业务的场景,驱动类和加载路径与迁移前保持一致,但接口支持情况不完全一致,未支持的接口需要业务侧进行调整。
历史版本兼容性 GaussDB介绍数据库的向下兼容性和对外兼容性特性的参数控制。数据库系统的向后兼容性能够为旧版本的数据库应用提供支持。本节介绍的参数主要控制数据库的向后兼容性。 array_nulls 参数说明:控制数组输入解析器是否将未用引用的NULL识别为数组的一个NULL元素。
pg_running_xacts与pg_stat_activity视图查询存在长事务,阻塞oldestxmin和global_recycle_xid推进。如果pg_running_xacts中查询活跃事务的xmin和gs_txid_oldestxmin相等,且通过pid查询pg_stat_activit
有效值。这和检测search_path的值不尽相同,因为current_schema显示search_path中首位有效的模式名称。 取值范围:字符串 设置为"$user",public时,支持共享数据库(没有用户具有私有模式和所有共享使用public),用户私有模式和这些功能的
k的命名和hint生效的方式给出例子。部分hint无法仅在最外层生效,且不支持通过@queryblock方式指定,具体参见各自hint的语法说明。 查询块QueryBlock的命名: 每个查询块,都需要给出一个名称,以实现对hint的精确指定。命名方式有两种,用户指定和系统默认指定。
Key)快速定位到数据所在的分区,从而避免在数据库中对大表的全量扫描,能够在不同的分区上并发进行DDL、DML操作。GaussDB支持三种分区策略 :范围分区、哈希分区、列表分区。范围分区基于二分binary-search实现,复杂度为O(logN);哈希分区和列表分区基于key-partOid哈希表实现,复杂度为O(1)。
PbRCR(Page base Row Consistency Read) Heap多版本管理 Heap的多版本管理是基于Tuple的行级多版本管理。 事务修改记录时,会将历史数据记录到Undo Row中。 在Tuple中的td_id上记录产生的Undo Row地址(zone_id
cursor.execute(query,vars_list) 功能描述 此方法执行被参数化的SQL语句(即占位符,而不是SQL文字)。psycopg2模块支持用%s标志的占位符。 原型 cursor.execute(query,vars_list) 参数 表1 cursor.execute参数
PREPARE 功能描述 准备用于执行的语句。 语法格式 PREPARE name FROM string 参数说明 name 预备查询标识符。 string 包含预备语句的文本C字符串或者宿主变量,预备语句包含SELECT、INSERT、UPDATE或者DELETE命令之一。 示例
连接时内表物化的Hint 功能描述 实现在指定连接的inner表时,对内表进行物化。 语法格式 [no] materialize_inner([@queryblock] inner_table_list) 参数说明 no表示hint的物化方式不使用。 @queryblock请参见
OPEN 功能描述 打开一个游标,并将实际值选择性地绑定到游标声明中的占位符。该游标必须事先使用DECLARE命令声明过。执行OPEN命令会触发在服务器上开始执行查询。 语法格式 OPEN cursor_name OPEN cursor_name USING value [, .
set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT current_database(), 256 INTO :t:t_ind LIMIT 1; printf("t.v = %s\n", t.v.arr);