在Azure中的大型表上创建索引时超时

时间:2015-01-07 15:40:36

标签: azure azure-sql-database

我的表包含Azure中超过5000万条记录。我正在尝试使用follow statment

在其上创建非聚集索引
create nonclustered index market_index_1 on MarketData(symbol, currency) with(online=on)

但是我收到了错误消息。

  

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

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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