Oracle9与Oracle8中CPU,第1张

Oracle9与Oracle8中CPU,第2张

Oracle 9与之前的Oracle 7、8相比,CPU_COSTING有什么变化?

Oracle 9引入了一种更精细、更全面的成本机制。这是对Oracle版本的重大改进,但我认为这种变化类似于从基于规则变为基于成本。如果你不明白它是如何工作的,你会看到奇怪的事情。

您可以使用dbms_stats包来激活CPU_COSTING,以便在适当的时间段内收集系统统计信息。

假设的CPU速度(MHz)
单块读取时间(ms)
多块读取时间(ms)
这些数字可以产生三种主要效果:[/br]这与根据读取数据库文件xxxx的平均等待时间设置参数optimizer_index_cost_adj大致相同——由于Oracle现在认为表扫描比最初理解的更昂贵,所以会鼓励Oracle使用索引访问路径而不是表扫描。

其次,Oracle将使用“达到的”多块读取平均次数来计算扫描一个表所需的读取请求数,而不是使用db_file_multiblock_read_count的调整值。因为很多人用的db_file_multiblock_read_count的值不合适,Oracle可能会增加表扫描(和索引快速全扫描)的成本,从而降低表扫描(和索引快速全扫描)的可能性。注意-记录的值用于计算,Oracle将在实际扫描时尝试使用init.ora中的值。

最后,Oracle知道,比如to _ char(date column)= character value的CPU开销高于numeric column = value的CPU开销,所以Oracle可能会修改index的选择。如果使用选择性较低的索引的连续读取成本低于CPU成本,它就会选择这个索引。(此外,Oracle会重新排列非访问谓词的顺序,以降低CPU成本,但在大多数情况下,它不会注意到性能的差异。)

总之——这绝对是好事。事实上,您可以找到对索引访问路径的更强偏好,这将影响性能。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Oracle9与Oracle8中CPU

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情