首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不超时的情况下更改大型Azure表

如何在不超时的情况下更改大型Azure表
EN

Stack Overflow用户
提问于 2014-01-17 13:26:51
回答 5查看 1.7K关注 0票数 5

我正在尝试修改大型Azure表(20 Gb,500M+记录)中的字段定义。

nvarchar(max)nvarchar(16)

代码语言:javascript
复制
ALTER TABLE [dbo].[MyTable] ALTER COLUMN [MyField] [nvarchar](16)

但是,我无法在没有超时的情况下找到执行此命令的方法。在Visual和中,我获得了一个

从服务器接收结果时发生了Msg 10054、级别20、状态0、行0的传输级错误.(provider: TCP Provider,error: 0-现有连接被远程主机强制关闭。)

大约30分钟后。几分钟后,当我从Azure Management Portal运行命令时,我得到:

MSG-2,级别11,状态0,行0超时过期.在操作完成或服务器没有响应之前经过的超时时间。

如何在SQL上执行如此长时间运行的查询?

EN

回答 5

Stack Overflow用户

发布于 2015-10-08 18:31:47

尝试v12语句的"WITH (ONLINE = ON)“选项。见这里的例子:

http://sqlperformance.com/2015/02/sql-performance/more-online-operations

票数 1
EN

Stack Overflow用户

发布于 2014-06-04 10:42:40

在SQL中,不能简单地更改大型表上的列。

相反,请执行以下操作:

  1. 使用所需的架构创建一个新表。
  2. 将数据从原始表复制到不超时的小批中的新表。
  3. 放下原来的桌子。
  4. 将新表重命名为原始表。
票数 0
EN

Stack Overflow用户

发布于 2015-05-19 14:53:04

实际上,有一种选择--将您的DB扩展到更高的性能层,进行繁重的工作,并将其缩小。

我有S2数据库,试图改变庞大的表,30分钟后超时。所以我把它放大到P2,在6分钟内修改完成。规模缩小-你将被收取1小时的P2,这是目前1欧元。通常,为了避免创建新表、在活动系统上移动数据维护一致性、重命名表等脏东西,我会在任何时候给1 EURo。

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

https://stackoverflow.com/questions/21187224

复制
相关文章

相似问题

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