根据您的经验,Oracle数据库统计信息应该多久运行一次?我们的开发团队最近发现,统计数据已经超过两个半月没有运行我们的生产箱了.这对我来说听起来很长时间,但我不是DBA.
根据您的经验,Oracle数据库统计信息应该多久运行一次?我们的开发团队最近发现,统计数据已经超过两个半月没有运行我们的生产箱了.这对我来说听起来很长时间,但我不是DBA.
在我上一份工作中,我们每周进行一次统计.如果我没记错的话,我们将它们安排在周四晚上,而在周五,DBA非常小心地监控运行时间最长的查询,以防出现任何意外情况.(之所以 Select 星期五,是因为它通常是在代码发布之后,而且往往是一个流量相当低的日子.)当他们看到一个错误的查询时,他们会找到一个更好的查询计划,并保存该计划,这样它就不会意外地再次更改.(Oracle有一些工具可以自动为您完成这项工作,您告诉它要优化查询,它确实做到了.)
由于担心意外出现糟糕的查询计划,许多组织避免运行统计数据.但这通常意味着他们的查询计划会随着时间的推移变得越来越差.当他们运行统计数据时,他们会遇到一系列问题.随之而来的解决这些问题的争先恐后的局面证实了他们对运行统计数据的危险的担忧.但是,如果他们定期运行统计数据,按照他们应该使用的方式使用监控工具,并在出现问题时进行修复,那么他们就会减少头痛,而且不会一下子遇到所有问题.