在Oracle中创建索引后是否需要重新编译视图

问题描述 投票:0回答:2

我有一个表,假设T1(F1,F2,F3)。然后,我使用T1(F1)列和T1(F2)列创建一个复杂的视图。然后过一会儿,我在T1的F1列上创建了一个索引。

因此,新索引将被现有视图使用,还是需要重新编译它以便更新其执行计划?

sql oracle performance indexing view
2个回答
1
投票

该索引立即使用,不需要重新编译。创建基于函数的索引时,可能需要重新编译它,因为这会向表中添加(隐藏)列(但我从未测试过)。

无论如何,当您选择一个无效的视图时,Oracle首先会尝试自动重新编译它,因此在任何情况下都不需要手动重新编译。


0
投票

假设您不是在谈论实例化视图,那么使用该视图的查询可以使用索引。

© www.soinside.com 2019 - 2024. All rights reserved.