问题描述
我们正在从一个数据库(比如 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 (将#修改为@)