gpt4 book ai didi

c# - FluentMigrator Execute(string template, params object[] args) 中的大数据出错;

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:10 24 4
gpt4 key购买 nike

我有一个 sql 脚本,使用 FluentMigrator 执行方法将数据从旧表迁移到新表。

这是我的脚本:

                INSERT INTO [Demo].[C]([key], [value], [tempID]) SELECT [name], [value], [userID] FROM [Demo].[A]
INSERT INTO [Demo].[B]([parentID], [propertyID]) SELECT [tempID], [id] FROM [Demo].[C] WHERE [tempID] IS NOT NULL
UPDATE [Demo].[C] SET [tempID] = NULL

userProperty 表有大约 1100 万行,并且在:

  • 第一步,我必须插入到 C 表中的某个列。(1100 万行)
  • 第二步,我必须将数据从 C 表插入到 B 表。(1100 万行)
  • 第三步,我应该更新 C 表(1100 万行)

总共 1100 万行,但我收到此错误:

The error was The transaction log for database 'test' is full due to 'ACTIVE_TRANSACTION'.

我想找到最快的方法,因为这是一次性运行脚本。

最佳答案

您的事务日志文件已满,没有剩余磁盘空间可用于增长(如果指定了自动增长选项)。

执行以下查询以获取有关您的事务日志文件设置的更多详细信息:

SELECT [type_desc]
,[name]
,[physical_name]
,[size]
,[max_size]
,[growth]
FROM [sys].[database_files];

您的问题可能有不同的解决方案。例如,获取更多空间并启用自动增长选项、单独执行这些步骤等。

您可以确定的几件事:

  • 您的数据库是在FULL 还是SIMPLE 恢复模式下
  • 如果它正在使用FULL 恢复模式,检查是否对事务日志文件进行了定期备份(如果不进行备份,它会尽可能多地增长并占用您的空间)

如果您的数据库不需要处于FULL 恢复模式,您可以将其设置为SIMPLE

关于c# - FluentMigrator Execute(string template, params object[] args) 中的大数据出错;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30375063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com