可以在插入时在表上创建索引

时间:2014-06-20 19:19:09

标签: oracle insert indexing

是否可以在表上创建索引,让我们说什么时候有些任务会同时在表中创建一些新行?会有任何锁定问题???

EX:FEEDBACK TABLE - >在(Name,feedbackrule)上创建索引,同时有任何插入同时发生,这是不是?如果是这样的话。

我假设,Oracle在发生插入时不会使用此索引,稍后将使用它。

1 个答案:

答案 0 :(得分:3)

通常,创建索引需要锁定表,因此所有DML操作都会阻塞;如果在启动索引创建时表上存在活动事务,则可能会收到错误" ORA-00054:资源繁忙,并且在指定NOWAIT或超时过期时获取"。

如果表格很小,这可能不是什么大问题 - 交易会暂时被阻止。但是如果它非常大,那么在使用该表时尝试创建索引是个坏主意。

但是,如果您使用Enterprise Edition,则可以将ONLINE关键字添加到CREATE INDEX语句中,这将允许在构建索引时对表进行事务处理。它可能仍会导致性能下降。