检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
免嵌套执行,但对于某些本身选择率较低且可以使用索引过滤访问页面的子查询,嵌套执行不会导致性能下降过多,而提升之后扩大了查询路径的搜索范围,可能导致性能变差。对于此类情况,可以使用no_expand Hint进行调试。大多数情况下不建议使用此hint。 语法格式 1 no_expand[(@queryblock)]
no表示hint的scan方式不使用。 @queryblock 见指定Hint所处于的查询块Queryblock,可省略,表示在当前查询块生效。 table表示hint指定的表,只能指定一个表,如果表存在别名应优先使用别名进行hint。 index表示使用indexscan或inde
查看数据 使用系统表pg_tables查询数据库所有表的信息。 1 gaussdb=# SELECT * FROM pg_tables; 使用gsql的\d+命令查询表的属性。 1 gaussdb=# \d+ customer_t1; 执行如下命令查询表customer_t1的数据量。
查看数据 使用系统表pg_tables查询数据库所有表的信息。 1 gaussdb=# SELECT * FROM pg_tables; 使用gsql的\d+命令查询表的属性。 1 gaussdb=# \d+ customer_t1; 执行如下命令查询表customer_t1的数据量。
NO_GROUPBY_PUSHDOWN_SUBQUERY 禁止使用groupby-pushdown-subquery查询重写将groupby聚集函数下推到子查询。 Hint使用准备 为了方便了解hint的使用场景,手册提供了所有查询改写hint的应用示例(请参见Hint使用说明),相关建表语句和环境准备如下:
该语句的初始计划如下,运行时间110s: 该计划中,第10层算子使用broadcast性能较差,由于第11层算子估算行数为2140,比实际行数严重低估。错误行数估算主要来源于第13层算子的行数低估,根因是第13层hashjoin中,使用store_sales的(ss_ticket_number
--删除表。 gaussdb=# DROP TABLE list_02; DROP TABLE list_tmp; 父主题: 分区基本使用
见指定Hint所处的查询块Queryblock章节,可省略,表示在当前查询块生效。 “#”、“+”、“-”、“*”,进行行数估算hint的四种操作符号。#表示直接使用后面的行数进行hint。“+”、“-”、“*”表示对原来估算的行数进行加、减、乘操作,运算后的行数最小值为1行。table_list为hi
--删除表。 gaussdb=# DROP TABLE list_02; DROP TABLE list_tmp; 父主题: 分区基本使用
no表示hint的join方式不使用。 table_list为表示hint表集合的字符串,该字符串中的表与join_table_list相同,只是中间不允许出现括号指定join的优先级。 例如: no nestloop(t1 t2 t3)表示:生成t1、t2、t3三表连接计划时,不使用nestloop。三表连接计划可能是t2
no表示hint的join方式不使用。 table_list为表示hint表集合的字符串,该字符串中的表与join_table_list相同,只是中间不允许出现括号指定join的优先级。 例如: no nestloop(t1 t2 t3)表示:生成t1、t2、t3三表连接计划时,不使用nestloo
该语句的初始计划如下,运行时间110s: 该计划中,第10层算子使用broadcast性能较差,由于第11层算子估算行数为2140,比实际行数严重低估。错误行数估算主要来源于第13层算子的行数低估,根因是第13层hashjoin中,使用store_sales的(ss_ticket_number
gaussdb=# DROP TABLE list_tmp; gaussdb=# DROP TABLE list_list_02; 父主题: 分区基本使用
如果在视图定义(CREATE VIEW)时指定hint,则在该视图每次被应用时会使用该hint。 当使用random plan功能(参数plan_mode_seed不为0)时,查询指定的plan hint不会被使用。 支持范围 当前版本Plan Hint支持的范围如下,后续版本会进行增强。
schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema、使用schema、删除schema、设置schema的搜索路径以及schema的权限控制。
表(别名),或对于子查询提升的场景,也可以包含子查询的hint别名,同时任意表可以使用括号指定优先级,表之间使用空格分隔。 表只能用单个字符串表示,不能带schema。 表如果存在别名,需要优先使用别名来表示该表。 join table list中指定的表需要满足以下要求,否则会报语义错误。
表(别名),或对于子查询提升的场景,也可以包含子查询的hint别名,同时任意表可以使用括号指定优先级,表之间使用空格分隔。 表只能用单个字符串表示,不能带schema。 表如果存在别名,需要优先使用别名来表示该表。 join table list中指定的表需要满足以下要求,否则会报语义错误。
as子句hint。对于子查询,无论提升与否都支持在skew hint中使用,这点与其它hint不一样。 对于倾斜表,如果定义了别名,则在hint中必须使用别名。 对于倾斜列,在不产生歧义的情况下,可以使用原名也可以使用别名。skew hint的column不支持表达式,如果需要指定采
是candidates表, 如果有逗号就说明同时指定了candidates表和dest表。 使用predpush hint将过滤表达式尽可能移至靠近数据源的位置以达到查询优化的目的。 使用predpush hint需要确保rewrite_rule GUC参数包含PREDPUSH|
@queryblock请参见指定Hint所处的查询块Queryblock章节,可省略,表示在当前查询块生效,当不指定时,hint没有括号"()"。 示例 使用hash聚集。 gaussdb=# explain (costs off) select c1 from t2 where c1 in( select