Oracle 扩展统计信息收集 extension statistics
在Oracle数据库中,扩展统计信息(extended statistics)是针对数据表中的列提供更深入的分布和相关性信息的一种特殊类型的统计信息。它可以帮助优化器更准确地估计查询的执行成本,从而制定出更高效的执行计划。
为了收集扩展统制信息,可以使用以下SQL命令:
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(
ownname => 'YOUR_SCHEMA_NAME', -- 替换为你的模式名
tabname => 'YOUR_TABLE_NAME', -- 替换为你的表名
cascade => TRUE,
method_opt => 'for all columns size auto',
degree => DBMS_STATS.AUTO_DEGREE,
no_invalidate => FALSE,
stattab => 'SYS',
statid => 'EXTENDED_STATS',
statown => 'SYS');
END;
/
请确保替换YOUR_SCHEMA_NAME
和YOUR_TABLE_NAME
为实际的模式名和表名。cascade
参数设置为TRUE
会导致收集相关联对象(如索引)的统计信息。method_opt
参数指定了统计信息收集的方法和大小,for all columns size auto
会自动为每一列收集适当大小的统计信息。degree
使用AUTO_DEGREE
会根据数据库的工作负载自动决定并行度。no_invalidate
设置为FALSE
表示这个操作可能会使现有的cursor失效。stattab
和statid
参数指定了统计信息表的名称和统计信息的ID。
请注意,这些操作可能会消耗较多系统资源,因此建议在系统负载较低时进行统计信息的收集。如果是生产环境,建议设置适当的并行度,避免对系统性能产生过大影响。
评论已关闭