详情页标题前

PolarDB中where条件和xx代表的列名都是确定的吗? -云小二-阿里云

详情页1

PolarDB中where条件和xx代表的列名都是确定的吗?如果是的话,直接把语句填在里面就行。
call dbms_outln.add_optimizer_outline(”, ‘/+ JOIN_PREFIX(c) /’, ‘语句填进来’);

以下为热心网友提供的参考意见

是的,在PolarDB中,where条件和列名都是确定的。您可以直接将语句填入其中。

以下为热心网友提供的参考意见

在 PolarDB 中,使用 dbms_outln.add_optimizer_outline 函数来添加查询优化器的大纲。这个函数允许你为特定的 SQL 语句定义一个优化器的大纲,以便在执行计划生成时使用。

WHERE 条件和列名 xx 在你提供的示例中看起来是占位符,不是确定的列名或条件。你需要将它们替换为实际的列名和条件。

以下是一个示例,演示如何使用 dbms_outln.add_optimizer_outline 函数:

-- 添加优化器大纲  
BEGIN  
  dbms_outln.add_optimizer_outline(  
    outline_name => 'my_outline',  
    sql_text => 'SELECT * FROM my_table WHERE column1 = :value1 AND column2 = :value2',  
    join_order => 'APPEND'  
  );  
END;  
/

在上面的示例中,你需要将 my_outline 替换为你想要的优化器大纲名称,并将 my_table、column1、column2、:value1 和 :value2 替换为实际的表名、列名和条件值。

以下为热心网友提供的参考意见

where 条件有可能列的个数是不定的。这种情况暂时是不支持的,只有等号后面或者 in 条件里这样的定值可以模板化,您这种连语句结构都不一样,本来执行计划就可能 不同,是支持不了的。只能给每个语句单独创建 outline。此回答整理自钉群“PolarDB 专家面对面 – 慢SQL索引选择优化器新特性”。

以下为热心网友提供的参考意见

在PolarDB中,WHERE条件和你提到的xx代表的都是确定的列名和值。当你调用CALL DBMS_OUTLN.ADD_OPTIMIZER_OUTLINE时,你可以将你的SQL语句填写在第三个参数的位置。例如:

CALL DBMS_OUTLN.ADD_OPTIMIZER_OUTLINE('', '/+ JOIN_PREFIX(c) /', 'SELECT * FROM table1 t1 JOIN table2 t2 ON t1.column1 = t2.column2 WHERE t1.column3 = ''value''');

在这个例子中,table1.column1table2.column2是你提到的xxt1.column3 = ''value'''是你的WHERE条件。

转转请注明出处:https://www.yunxiaoer.com/181259.html

(0)
上一篇 2024年1月3日
下一篇 2024年1月3日
详情页2

相关推荐

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。