我们有一个Oracle 11g数据库,运行的表可以插入记录/分钟约为100条的条目。我们遇到了一些问题,主要是因为表正在执行全表扫描。我们已经索引了所需的密钥,但是,有时它不会生效。
我们所做的是做一个‘分析表统计’,它解决了这个问题。
我可以问一问,为什么甲骨文需要一张桌子进行分析?我们多长时间分析一张桌子?目前,我们每3小时设置一次作业调度程序,但是,在30分钟内的某个时间内,似乎需要另一项统计数据进行分析。
发布于 2016-12-13 07:29:31
不要使用analyze table statistic,只支持向后兼容性(在Oracle10g中已经是这种情况),请参阅分析
不要使用分析的计算和估计子句来收集优化器统计信息。为了向后兼容,支持这些子句。相反,可以使用DBMS_STATS包,它允许您并行收集统计信息,收集分区对象的全局统计信息,并以其他方式微调您的统计信息集。依赖于统计信息的优化器最终将只使用DBMS_STATS收集的统计信息。有关DBMS_STATS包的更多信息,请参见PL/SQL包和类型参考。
使用DBMS_STATS.GATHER_TABLE_STATS()代替,请参阅数据库管理系统_统计数据。默认情况下,Oracle会在夜间自动收集统计信息。通常这就足够了。插入数据并不一定意味着您也需要新的统计数据。通常,新数据与现有数据相似,Min/最大值或值的分布变化不大。
https://dba.stackexchange.com/questions/157929
复制相似问题