本文探讨了在Oracle数据库中,DBMS_STATS.GATHER_TABLE_STATS 和 ANALYZE命令在收集统计信息方面的区别。当一个分区表在生产环境中执行缓慢时,发现其全局统计信息(GLOBAL_STATS)设置为true,这可能意味着使用了DBMS_STATS进行分析。CBO(基于代价的优化器)依赖于准确的统计信息来选择最佳执行计划。文中提到了由于统计信息不准确,导致生产环境的查询未使用索引,而是全表扫描。为了解决这个问题,执行了DBMS_STATS.GATHER_TABLE_STATS以更新统计信息,并使用ANALYZE命令进行计算。此外,还提供了相关资源链接以深入了解这两个工具的详细信息。