使用星型连接伪指令指定优化程序应连接具有星型模式的表的方式。
在指定多个表的 AVOID_FACT 伪指令中,使用逗号或空格分隔括号内的元素。
关键字 | 作用 | 优化程序操作 |
---|---|---|
AVOID_FACT | 必须指定至少一个表。不使用将表(或表列表中的任何表)作为星连接优化程序中的事实表 | 优化程序不考虑将指定的表(或表列表中的任何表)视为事实表的星型连接执行计划。 |
AVOID_STAR_JOIN | 优化程序不会考虑星连接执行计划。 | 优化程序选择一个不是星型连接计划的查询执行计划。 |
FACT | 必须指定正确的一个表。只能将指定的表视为星型连接执行计划中的事实表 | 这些优化程序考虑查询计划,其中指定的表是星型连接执行计划中的事实表。 |
STAR_JOIN | 如果可能,优先选择星型连接计划。 | 如果可能,优化程序优先选择星型连接计划。 |
星型连接伪指令要求启用并行数据库查询功能(PDQ)。当 PDQ 关闭时,禁用星型连接查询优化程序。
星型连接伪指令要求查询中的所有表具有至少低级别的统计。如果查询中的任何表的表统计信息不可用,则禁用星型连接优化程序
SQL 的 SET OPTIMIZATION ENVIRONMENT STAR_JOIN DISABLED 语句会禁用当前会话中的星型连接伪指令。(有关优化程序环境设置的其它信息,请参阅 ENVIRONMENT 选项。)
单独指定 FACT 伪指令不会自动支持星型连接执行计划。您可以通过指定 STAR_JOIN 伪指令和 FACT 伪指令的组合来指示优化程序更喜欢使用特定事实表的星型连接执行计划。
您可以在 SET EXPLAIN 语句的输出文件中查看一个查询的星型连接优化程序路径,也可以使用 GBase Data Studio 获得 Visual Explain 输出。