首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >改变是如何运作的?

改变是如何运作的?
EN

Database Administration用户
提问于 2011-12-21 16:43:09
回答 2查看 129关注 0票数 1

我有一个有很多记录(超过15M)的表,我正在执行一个alter来向表中添加2列。

该查询大约需要1小时才能完成执行。

所以我的问题是:改变是如何运作的?为什么它会受到记录数量的影响?

是否可以使用列索引加速ALTER查询?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2011-12-21 17:47:58

将列添加到表中的ALTER操作应该是一个简单的数据字典只更新。Oracle没有理由访问表中的所有块/行。所以手术应该非常快。(亚秒响应时间)

唯一的例外是,如果您在11g之前使用了Oracle版本,并且要为要添加的列设置默认值,则Oracle必须访问所有行。在11g中,即使设置默认值也不会导致对表中所有行的访问。

票数 5
EN

Database Administration用户

发布于 2011-12-21 16:48:13

如果要指定默认值,则需要更新表中的每一行以添加新列。这就是为什么它会受到记录数量的影响。列索引不会有帮助,因为索引与此操作无关。

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

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

复制
相关文章

相似问题

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