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

ama*_*eur 6 oracle indexing insert

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

例如:反馈表 --> 在(名称,反馈规则)上创建索引,同时有任何插入发生,这不好吗??如果是什么。

我假设,当插入发生时,Oracle 不会使用这个索引,稍后会使用它。

Dav*_*sta 6

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

如果表很小,这可能不是什么大问题 - 交易只会被阻塞片刻。但是如果它非常大,那么在表正在使用时尝试创建索引将是一个坏主意。

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