Oracle 更改索引/重建
如果我使用 alterindex xrebuild
重建不可用的索引,是否会重新评估之前使用该索引的任何 SQL 的执行计划?
我知道统计数据是在我使用的数据库版本(Oracle 10.2.0.4.0)重建过程中重新计算的。
我不想使用 dbms_stats 包来强制解决此问题,因为我已经获得了新的统计数据!
If I rebuild an unusable index using alter index x rebuild
, will the execution plan for any SQL that used that index previously be re-evaluated?
I know that the statistics are re-calculated as part of the rebuild in the DB version I'm using - Oracle 10.2.0.4.0.
I don't want to use the dbms_stats package to force the issue on this, seeing as I've already got fresh stats!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于该索引当前不可用,因此没有 SQL 查询使用该索引。当您收集统计信息时(通过重建或 dbms_stats 包),针对基表的所有语句将在下次提交时重新解析(硬解析)。计划可能会因统计数据更新而改变。
因此,重建不可用的索引将使其对所有语句可见且可用,甚至是那些之前已解析过的语句。
since the index is currently unusable, no SQL query uses the index. When you collect statistics (either through a rebuild or the
dbms_stats
package), all statements against the base table will be reparsed (hard-parse) next time they are submitted. Plans may change due to the stats update.Rebuilding an unusable index will therefore make it visible and usable by all statements, even those that have been previously parsed.