【发布时间】:2015-09-02 13:35:39
【问题描述】:
我使用的是 EF 6.1.1,我的数据库有 300 万条记录,迁移必须更改 decimal 类型的列的精度。并且迁移超时窗口设置为最大值,CommandTimeout = Int32.MaxValue;
我在 Azure SQL Server 中测试了这个场景,在尝试了大约 90 分钟后,它以异常结束,但没有在数据库上完成迁移。
异常详情:
由于事务日志空间使用过多,会话已终止。尝试在单个事务中修改更少的行。
我的问题是:
在大型数据库上迁移这种类型需要更多时间是预期的行为吗? (因为改变精度后必须将现有值转换并保存回来,并且必须在300万条记录上重复)
如何解决这个问题?我不认为我们可以在事务块中进行迁移。
【问题讨论】:
标签: c# entity-framework entity-framework-6 azure-sql-database database-migration