Sql 如何影响内联视图/CTE结果的oracle基数?

Sql 如何影响内联视图/CTE结果的oracle基数?,sql,oracle,Sql,Oracle,在编写Oracle SQL查询时,我经常会遇到这样一个问题:优化器会根据基数做出有问题的选择。考虑以下事项: select t.* from t join (select ... from ... where ...) t2 on t2.col = t.col; 实际的查询文本并不重要,更重要的是结构。我想知道的是如何告诉优化器,我知道,例如,即使它认为t2将产生200万行,实际上,它可能更像1000行 明确地说,我试图影响的是内联视图的基

在编写Oracle SQL查询时,我经常会遇到这样一个问题:优化器会根据基数做出有问题的选择。考虑以下事项:

select t.*
from t
     join (select ...
           from ...
           where ...) t2 on t2.col = t.col;
实际的查询文本并不重要,更重要的是结构。我想知道的是如何告诉优化器,我知道,例如,即使它认为t2将产生200万行,实际上,它可能更像1000行

明确地说,我试图影响的是内联视图的基数,而不是组成表的基数


我知道基数和opt_估计提示,并成功地将它们用于静态表,而不是内联视图或CTE。我认为它可能涉及qb_名称提示,并在这方面取得了一些成功,但不是在这个特殊情况下。

有一个未记录的基数提示,您可以尝试:
/*+基数(t2500)*/
Doh。完全有效。没有意识到这一点。美好的