刘艳兵的学习博客

刘艳兵的学习博客

关于cardinality的描述,正确的是?
A    cardinality只可以设置单个表的预估返回行数
B    cardinality作用的对象只能是当前查询,无法作用于视图中的对象
C    cardinality提示如果不写表名,将会对整个结果集执行预估行数调整
D    cardinality除了可以设置单个表的预估返回行数,还可以设置多个表连接的返回行数

答案:D    cardinality除了可以设置单个表的预估返回行数,还可以设置多个表连接的返回行数


选项分析:

A选项
- cardinality 不仅可以设置单个表的预估返回行数,还可以用于设置多个表连接后的预估返回行数等,所以A选项错误。

B选项
- cardinality 可以作用于视图中的对象。当视图中涉及到对表的查询操作时,可以通过 cardinality 提示来调整视图中查询的表的预估行数,从而影响基于视图的查询计划,所以B选项错误。

C选项
- 如果不写表名,cardinality 提示并不会对整个结果集执行预估行数调整。通常情况下,必须明确指定要设置预估行数的表或视图等对象,否则无法确定具体要调整哪个对象的预估行数,所以C选项错误。

D选项
- 如前面所述,cardinality 既可以用于设置单个表的预估返回行数,也可以用于设置多个表连接后的预估返回行数。通过这种方式,可以为优化器提供更准确的统计信息,帮助优化器生成更优的查询计划,所以D选项正确。

11-18 20:28