暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB数据库-Scan方式的Hint

CY 学数据库 2023-11-16
286

功能描述

指明scan使用的方法,可以是tablescan、indexscan、indexonlyscan,或者gsi。

语法格式

[no] tablescan|indexscan|indexonlyscan|gsi( [@queryblock] table [index])

参数说明

  • table表示hint指定的表,只能指定一个表,如果表存在别名应优先使用别名进行hint。
  • index表示使用indexscan、indexonlyscan或者gsi的hint时,指定的索引名称,当前只能指定一个。

说明:

  • 对于indexscan、indexonlyscan或gsi,只有hint的索引属于hint的表时,才能使用该hint。
  • scan hint支持在行列存表、obs表(当前特性是实验室特性,使用时请联系华为工程师提供技术支持)、子查询表上指定。
  • indexonlyscan的计划也能够被indexscan 的hint产生,但indexonly的hint只能产生indexonly的计划。
  • indexscan兼容indexonlyscan时可能带来一些计划变化,使用cost_model_version进行逃生,通过cost_model_version可以控制是否兼容,在大于2或者等于0时生效。
  • 在满足查询可以使用gsi的前提下,使用gsi的hint将产生使用全局二级索引的index only scan查询计划,而不会产生使用普通索引的查询计划。
  • 对于gsi的hint,若没有给定queryblock、table以及index,则此gsi的hint支持跨queryblock。
  • 支持直接在数据节点查询有效的全局二级索引。
  • 当前版本全局二级索引不支持回表查询。

示例

为了hint使用索引扫描,需要首先在表item的i_item_sk列上创建索引,名称为i。

create index i on item(i_item_sk);

示例中原语句使用如下hint:

explain
select /*+ indexscan(item i) */ i_product_name product_name ...

该hint表示:item表使用索引i进行扫描。生成计划如下所示:


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论