ORA-40291: model cost not available

文档解释

ORA-40291: model cost not available

Cause: The supplied model was assumed to have been built with a cost matrix specification, when in reality, it was not.

Action: Provide a model name that corresponds to a model that was built with an appropriate cost matrix specification.

ORA-40291:模型费用不可用

官方解释

ORA-40291被抛出表明模型的费用无法被查询访问。这通常是由于数据库无法正确识别查询中使用的模型和使用的费用函数引起的。

常见案例

该错误通常发生在空查询中,在查询结果中使用费用函数,但没有将模型作为输入参数传递给查询,而导致 ORACLE 无法确定正确的费用函数。

一般处理方法及步骤

要解决ORA-40291错误,应该按以下步骤操作:

1.检查查询语句,确保其中包含一个明确的模型。没有指定的模型,有可能会在数据库中返回多个费用模型,并因此导致抛出ORA-40291错误。

2.请确保要使用的费用函数与模型中定义的费用函数相匹配,否则可能会抛出ORA-40291错误。

3.检查模型编译树,以确保它选择最佳路径并正确计算费用。

4.用预评估函数来检查模型,以确定其费用函数是否正确计算。可以使用以下函数来执行预评估:dbms_advisor.model_verify,dbms_xplan.display_cursor。

5.最后,确保模型中的对象保持最新。你可以使用dbms_mview.refresh_all_dependents函数来刷新模型中的视图和索引。

你可能感兴趣的