oracle的cardinality feedback

这个功能也是对优化器评估不准确的补充,在统计信息不正确的情况下,可以使用动态采样,多列的扩展统计信息来解决,cardinality feedback也可以解决这个问题,sql在第一次执行的时候,执行计划是按照正方式产生,如果对于一个游标cardinality feedback监控的功能开启,那么一些cardinality的估计如果跟实际的有很大差异,在下次执行的时候,就会重新优化,使用正确的统计信息,对于启用该功能的执行计划,在note中可以看到 cardinality feedback used for this statement,也可以在v$sql_shared_cursor视图中的use_feedback_stats列中确定,这个列的解释是“为了使用正确的统计信息去重新优化查询,一个硬解析发生了‘。该功能在下面几个情况下会启用:表上没有统计信息,多个关联或分离的谓词,谓词包含优化器不能正确统计信息的复杂的操作符。对于sql要禁用该功能,可以使用 select /*+ opt_param('_optimizer_use_feedback' 'false') */  

你可能感兴趣的:(oracle的cardinality feedback)