长度超过32个字符的字符列的直方图的SQL计划不正确导致表完全扫描(文档ID 2413826.1)

由于直方图的限制,直方图中只存储12c之前的前32个字符(或12c以上的64个字符)。 具有相同前32个字符的值将被视为相同,这会导致更多列值被视为常用值。 这会导致估计不正确的基数,并错误地选择TABLE FULL SCAN。

执行以下命令删除12c之前超过32个字符(或12c以上64个字符)的列的错误直方图:

exec DBMS_STATS.DELETE_COLUMN_STATS(ownname=>'<owner>',tabname=>'<table name>',colname=>'<column name>',col_stat_type=>'HISTOGRAM');

猜你喜欢

转载自blog.csdn.net/qq_21127313/article/details/82220475