我想知道是否有可能将一列添加到SQL Server 2008中的表上的现有聚集索引?如果是这样,是否有可能在网上做?是否可以将一列添加到SQL Server中的现有聚集索引?
3
A
回答
1
您不能将列添加到现有索引,但可以删除索引并使用其他列重新创建索引。
您可以在线执行此操作,但如果表格很大,则可能会耗费大量时间。
2
您可以更改聚簇索引的定义(即向键添加新列)作为在线操作。我没有一个实例来验证,但语法是类似以下内容:
create clustered index [indexname] on [table]([column], [column], [column], ...)
with (drop_existing =on, online = on);
的操作完全在线(表为您开放,读取,插入,更新和删除)。您需要企业版实例(因为只有EE支持联机索引构建操作),并且该表不能有LOB列(至少达到SQL Server 2012 it cannot)。
该操作是对表格进行全面重建,占用大量资源并会生成重要日志。
+0
的一部分,查询将执行表扫描或使用旧索引,直到新索引生成并删除那之后呢? – 2012-03-29 12:33:03
+0
[如何在线操作工作](http://msdn.microsoft.com/zh-cn/library/ms191261.aspx) – 2012-03-29 14:52:18
相关问题
- 1. SQL Server:是否可以将UPDLOCK与非聚集索引一起使用?
- 2. 将聚集索引添加到现有表可以提高性能吗?
- 3. SQL Server聚集索引 - 索引问题
- 4. sql server中的非聚集索引
- 5. SQL Server中的复合聚集索引
- 6. 复合聚集索引和非聚集索引在sql server 2005
- 7. 是否可以将SQL Reporting Service添加到SQL Server 2008 Express?
- 8. 是否可以在SQL Server 2008中将语言添加到sys.syslanguages?
- 9. SQL Server:是否有可能为IS NULL条件创建非聚集索引
- 10. 将索引添加到sql server
- 11. 是否可以将语言/区域添加到SQL Server 2005?
- 12. 是否向SQL Server添加索引是一个坏主意?
- 13. 将列和索引添加到SQL Server 2000表中
- 14. SQL Server:如果我总是阅读“聚集”行,聚集非唯一索引可以提高性能吗?
- 15. SQL Server - 将XML索引添加到视图上的计算列
- 16. 是否可以将新的唯一索引添加到现有的数据库表中?
- 17. 我可以通过在其他索引中包含列来“链接”SQL Server中的非聚集索引吗?
- 18. 在SQL Server 2005中没有聚集索引的原因
- 19. 将不可为空的列添加到SQL Server中的现有表中?
- 20. 将列添加到SQL Server
- 21. 是否可以将方法添加到集合中的类中?
- 22. 将主键添加到具有现有聚簇索引的表中
- 23. 还有一个聚集(PK)索引时,非聚集索引性能是否会增加?
- 24. SQL Server将频率列添加到现有表中
- 25. SQL Server是否支持散列索引?
- 26. 是否可以将图像添加到我的SQL Server 2008数据库表中?
- 27. 删除SQL服务器中的聚集索引是否安全?
- 28. 将Enum添加到现有的sql列
- 29. 未定义的索引错误...将新索引添加到现有阵列中
- 30. 复合索引:列的顺序是否在sql server/linq到sql?
如何删除索引并在线创建它? – 2012-03-29 01:18:20
@SriramSubramanian SQL Server企业版(2008和2008 R2 - 不确定大约在2005年)允许在线重建索引......但我不记得聚簇索引如何影响到在线索引重建 – jlnorsworthy 2012-03-29 03:38:00
如果重建聚簇索引,则全部非聚集索引也将被重新创建,因为当重建发生时,它们使用聚簇索引作为其键 – datagod 2012-03-29 04:12:25