【问题标题】:Timeout when create index on a large table in Azure在 Azure 中的大表上创建索引时超时
【发布时间】:2015-01-08 05:11:56
【问题描述】:

我的表在 Azure 中包含超过 5000 万条记录。我正在尝试使用以下语句在其上创建一个非聚集索引

create nonclustered index market_index_1 on MarketData(symbol, currency) with(online=on)

但我收到一条错误消息。

消息 -2,级别 11,状态 0,行 0 超时已过期。超时时间 在操作完成之前已经过去,或者服务器没有 回应。

任何建议将不胜感激。

【问题讨论】:

    标签: azure azure-sql-database


    【解决方案1】:

    查看Azure SQL Database Resource Limits document。然后将错误代码与本文档中列出的错误代码进行比较。

    对于这种大小的数据,我相信在该表中创建新索引的唯一方法是:

    • 创建具有相同结构且只有一个聚集索引的新表
    • 将原表中的数据复制到新表中
    • 截断原始表
    • 创建所需的索引
    • 将数据复制回原始表中

    请注意,在表之间移动数据可能会再次超出资源限制,因此您可能必须分块执行这些操作。

    其他可能的方法是将数据库服务器升级到新的Preview Version of Azure SQL Database(注意:您以后不能降级服务器!)

    【讨论】:

    • 谢谢!实际上我现在正在将数据传输到另一个表。下次,我会记得在将数据移入之前创建索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2015-02-01
    • 2018-01-18
    • 2022-10-15
    • 2014-08-19
    • 2021-03-08
    • 2017-12-04
    相关资源
    最近更新 更多