默认情况下,数据库在统计信息收集结束时自动发布统计信息。
或者,您可以使用暂挂统计信息来保存统计信息,而不必在收集后立即发布它们。此技术对于在具有待处理统计信息的会话中测试查询很有用。当测试结果令人满意时,您可以发布统计信息以使它们可用于整个数据库。
与发布的统计信息一样,数据库将待处理的统计信息存储在数据字典中。
默认情况下,优化器使用已发布的统计信息。您可以通过将OPTIMIZER_USE_PENDING_STATISTICS初始化参数设置为true(默认值为false)来更改默认行为。
下图的顶部显示了优化器,该优化器收集sh.customers表的统计信息并将其存储在具有待处理状态的数据字典中。图的底部显示了优化器,该优化器仅使用已发布的统计信息来处理的查询sh.customers。
图15-1已发布和待处理的统计信息
在某些情况下,优化器可以结合使用已发布和未决的统计信息。例如,数据库存储customers表的已发布统计信息和未决统计信息。对于该orders表,数据库仅存储已发布的统计信息。如果为OPTIMIZER_USE_PENDING_STATS = true,则优化器使用的待处理统计信息customers和的已发布统计信息orders。如果为OPTIMIZER_USE_PENDING_STATS = false,则优化器将针对customers和使用已发布的统计信息orders。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




