OBCP刷题

关于以下查询语句中的Hint的解释正确的是:
SELECT /*+ use_nl(t1 t2) .leading(t2 t1) .max_concurrent(10) .query_timeout(60000000) */ * FROM tb1 t1, tb2 t2 WHERE t1.c1 = t2.c1 AND t1.c2 > 100;
A. Hint中指定了两表关联的Join顺序是 t2 → t1
B. Hint中指定了两表关联的Join算法是 Nested Loop Join
C. Hint中指定了该查询语句的最大并行度(DOP)为 10
D. Hint中指定了该查询的最长执行时间为 60 秒

6 个赞

不知道,求高手解答

1 个赞

全对?

1 个赞

ab?cd用的参数不是常用参数呢dop 使用parallel,query_timeout用ob_query_timeout

1 个赞

学习下

1 个赞

答案是ABCD

选B

2 个赞

ABD
max_concureent是执行并发数,不是并行度DOP。

1 个赞

C是错误的 max_concurrent(10) 指的是SQL执行的时候的并发度是10,也就是说同时可以执行10个相同的SQL,DOP是一个SQL执行的时候的并行的线程是多少,通过PARALLEL来控制

2 个赞

答案是 ABD

1 个赞

有考哦

1 个赞

hint前面的那个.是什么意思?

1 个赞

学习学习 :+1: :+1: :+1:

2 个赞

@论坛小助手

2 个赞

选项 A、B、C、D 均正确。

解析如下:

  1. /*+ leading(t2 t1) */:该 Hint 指定了连接顺序,t2 作为连接的左侧表先于 t1 被连接,对应选项 A。
  2. /*+ use_nl(t1 t2) */:该 Hint 指定了连接算法,t1 作为右表时使用 Nested Loop Join 算法,对应选项 B。
  3. /*+ max_concurrent(10) */:该 Hint 指定了查询语句的最大并行度为 10,对应选项 C。
  4. /*+ query_timeout(60000000) */:该 Hint 指定了查询语句的超时时间为 60000000 微秒,即 60 秒,对应选项 D。

详情请参考:

  1. 阅读和管理 OceanBase 数据库 SQL 执行计划
  2. Hint
1 个赞

学习+1

1 个赞