由于“LOG_BACKUP”

问题描述

我们正在从一个数据库(比如 FirstDB)中的几个表中删除,并将大约 93,357 行(一次一行)插入到另一个数据库(比如 SecondDB)的一个 Log 表中。

数据库恢复模型已满。

每行包含 6 列数据

[DeleteTime] [datetime] NULL,[FilePath] [varchar](255) NOT NULL,[DocumentID] [int] NULL,[AnotherCol] [varchar](50) NULL,[AnotherCol2] [varchar](50) NULL,[AnotherCol3] [varchar](50) NULL,

在之前的插入中,当我们插入 153,000 行时,我们收到错误“数据库 'SecondDB' 的事务日志由于 'LOG_BACKUP' 已满

避免在事务日志中使用大量空间的最佳方法是什么?

我应该为数据库 SecondDB 每 1000 次插入提交事务吗?

这是从FirstDb中删除并插入到SecondDB中的代码

using (SqlConnection con = new SqlConnection(connectionString))
        {
            try
            {
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter("spGetDocuments",con);
                DataSet ds = new DataSet();
                da.Fill(ds);
                foreach (DataRow aRow in ds.Tables[0].Rows)
                {
                    try
                    {
                        //Code to insert into FirstDB

                        //Code to insert into SecondDB
                        cmdSecondDB = new SqlCommand("spUpdateDeleteDocsLog",con);
                        cmdSecondDB.CommandType = CommandType.StoredProcedure;
                        cmdSecondDB.Parameters.Add(new SqlParameter("FilePath",sDocumentPath));
                        cmdSecondDB.Parameters.Add(new SqlParameter("DocumentID",aRow["DocumentID"]));
                        :
                        iRow = cmdSecondDB.ExecuteNonQuery();
                        cmdSecondDB.Dispose();
                        cmdSecondDB = null;
                    }
                }
                ds.Dispose();
                ds = null;
                da.Dispose();
                da = null;
                con.Close();
            }               
        }

另外,有没有办法计算出上面6行数据的93357行会占用多少事务日志?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)