/*+ set(enable_nestloop off) set(enable_index_nestloop off) */
关闭嵌套查询,走hash
/*+ use_cplan */
常量和绑定变量执行计划一致
Custom Plan和Generic Plan选择的Hint
语法格式:
指定使用Custom Plan:
use_cplan
指定使用Generic Plan:
use_gplan
示例:
//强制使用Custom Plan,可以看到过滤条件为入参的实际值
openGauss=# prepare p as select /*+ use_cplan*/ * from test_bak where id = $1;
PREPARE
openGauss=# explain execute p(1);
QUERY PLAN
---------------------------------------------------------------------
Index Scan using unq1 on test_bak (cost=0.00..8.27 rows=1 width=8)
Index Cond: (id = 1)
(2 rows)
//释放语句p
openGauss=# deallocate p;
DEALLOCATE
//强制使用Generic Plan,可以看到过滤条件为待填充的入参
openGauss=# prepare p as select /*+ use_gplan*/ * from test_bak where id = $1;
PREPARE
openGauss=# explain execute p(1);
QUERY PLAN
---------------------------------------------------------------------
[Bypass]
Index Scan using unq1 on test_bak (cost=0.00..8.27 rows=1 width=8)
Index Cond: (id = $1)
(3 rows)
/*+ set(enable_nestloop off) set(enable_index_nestloop off) set(enable_indexscan off) set(enable_bitmapscan off) set(query_dop 3)*/
with as 改写为 as not materialized
pg12之前,WITH中的每一个CTE(common table express),都是直服务器托管网接进行物化服务器托管网的,也就是说外层的条件是不会影响到CTE语句里面的内容。但是对于select CTE来说,外面的条件如果可以推到CTE里面,那可能能够大幅降低扫描,尤其是在有索引的情况下。
从pg12开始,CTE语句支持了not materialized选项,即不使用物化,允许外面条件推进去。
ROWNUM RN 改写为 row_number() over(order by null) rn 这样可以开启并行 使 set(query_dop 3) 能生效
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 武汉星起航电子商务有限公司怎么样?亚马逊运营必备技能分享
作为一名亚马逊卖家,成功经营自己的业务需要具备一系列的运营技能。这些技能将帮助你更好地管理产品、吸引顾客并增加销售额。武汉星起航电子商务有限公司是一家非常专业的跨境电商企业,以下是星起航整理的亚马逊卖家需要具备的关键运营技能: 市场研究能力: 了解市场需求和趋…