首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle中引用索引时重新生成索引

在Oracle中引用索引时重新生成索引
EN

Database Administration用户
提问于 2013-06-11 11:08:35
回答 1查看 2.4K关注 0票数 2

我在这个网站和Tom的博客上看到了很多关于如何、为什么和何时重建索引的文章。请注意,这个问题是关于当有引用这些索引的并发会话时,我是否可以重新构建;是否对此有任何建议?

我在一堆表上的OLAP中运行了几个SELECT查询。我应该在重建之前停止这些会议吗?我想锁可能有问题。

更新:注意,我们的DBA建议不要在重建期间使用活动会话。此外,表的大小在15-20GB之间,重构通常需要2-3小时。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-06-11 11:39:11

索引重新生成操作是DDL,因此可能会锁定基础表,从而阻止您更新它。但是,查询本质上不会锁定(除非指定了FOR UPDATE子句),并且即使对象被锁定,也可以从对象中读取,因此,通常在运行查询时,在索引重建过程中不会出现任何问题(除了重建期间的某些性能下降)。

如果您想要更新具有正在重建的索引的表,可以指定ONLINE子句:

代码语言:javascript
复制
SQL> alter index table1_pk_idx rebuild online;

否则,执行DML的会话将等待索引重建。

有关索引重建、ONLINE子句和索引重新构建限制的详细信息,请参阅管理员指南中的“重建现有索引”部分和SQL引用中的“变更索引”部分。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/44287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档