我们的数据库设置为收集模式统计信息,例如
method_opt => 'for all columns size auto'
问题是这样的直方图也被分配给不应该生成直方图的列。有没有办法为这些列设置例外(同时为其他列保留自动大小)?
基本原理:我们的一些(索引)列是 VARCHAR2(100),而前 50 个字符几乎相同 - 前 50 个字符中的不同值少于 10 个。当收集列统计信息时,会生成直方图。但是直方图生成只分析了 VARCHAR2 列的前 30 个字符,这导致了完全错误的直方图。(事实上,这些值几乎是均匀分布的。)
编辑:我的想法是使用类似“所有列大小自动,但列(ECID)大小为 1”之类的东西。但我不知道这是否可能,method_opt 语法对我来说不是很清楚。