根据您的经验,Oracle数据库统计信息应该多久运行一次?我们的开发团队最近发现,统计数据已经超过两个半月没有运行我们的生产箱了.这对我来说听起来很长时间,但我不是DBA.

推荐答案

在我上一份工作中,我们每周进行一次统计.如果我没记错的话,我们将它们安排在周四晚上,而在周五,DBA非常小心地监控运行时间最长的查询,以防出现任何意外情况.(之所以 Select 星期五,是因为它通常是在代码发布之后,而且往往是一个流量相当低的日子.)当他们看到一个错误的查询时,他们会找到一个更好的查询计划,并保存该计划,这样它就不会意外地再次更改.(Oracle有一些工具可以自动为您完成这项工作,您告诉它要优化查询,它确实做到了.)

由于担心意外出现糟糕的查询计划,许多组织避免运行统计数据.但这通常意味着他们的查询计划会随着时间的推移变得越来越差.当他们运行统计数据时,他们会遇到一系列问题.随之而来的解决这些问题的争先恐后的局面证实了他们对运行统计数据的危险的担忧.但是,如果他们定期运行统计数据,按照他们应该使用的方式使用监控工具,并在出现问题时进行修复,那么他们就会减少头痛,而且不会一下子遇到所有问题.

Database相关问答推荐

Oracle批量数据处理

Metasploit 数据库警告

函数到关系映射比对象到关系更容易吗?

如何手动卸载 Oracle?

使用python为组中的每个元素添加一个序列号

为什么面向对象的数据库还没有成功?

什么技术对处理数百万条记录最有效?

WAMP 的 MySQL 数据库文件位于何处?

按纬度/经度进行半径搜索

如何允许多个用户同时连接到我的 H2 数据库?

是否可以使用 Mongo 的 Object ID作为其唯一标识符?如果是这样,如何将其转换为字符串并按字符串查找?

库存数据库的最佳 struct

C# 数据连接最佳实践?

按最强 LIKE 排序 SQL?

如何在 PDO 中获取数据库名称?

如何在一行中显示 redis 中的所有键?

使用多个数据库模式的 JPA

面向文档的数据库是否旨在取代关系数据库?

显式事务回滚是否必要?

如何在 Google AppEngine 上实现自动增量