如何优化我的查询以避免sql server中的完整事务日志
我在Godaddy数据库服务器中发现我的数据库超出了限制,他们的支持团队告诉我这是因为完整的事务日志 由于我没有共享主机的管理权限,他们将其截断后,它在几周内又满了 他们告诉我,这是由于我的代码,并要求我审查我的代码,以优化它 但是现在我不明白回顾我的问题的意义是什么 我的查询中是否需要编写代码来避免完整的事务日志 查询中的成员时更新 我的代码是这样的如何优化我的查询以避免sql server中的完整事务日志,sql,sql-server,tsql,transactions,transaction-log,Sql,Sql Server,Tsql,Transactions,Transaction Log,我在Godaddy数据库服务器中发现我的数据库超出了限制,他们的支持团队告诉我这是因为完整的事务日志 由于我没有共享主机的管理权限,他们将其截断后,它在几周内又满了 他们告诉我,这是由于我的代码,并要求我审查我的代码,以优化它 但是现在我不明白回顾我的问题的意义是什么 我的查询中是否需要编写代码来避免完整的事务日志 查询中的成员时更新 我的代码是这样的 Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase dbHe
Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase dbHelper = new Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase(System.Configuration.ConfigurationManager.ConnectionStrings["ABestoreConnectionString"].ToString());
SqlCommand dbCommand = (SqlCommand)dbHelper.GetStoredProcCommand("Admin_FAQD");
dbHelper.AddInParameter(dbCommand, "@FAQID", SqlDbType.Int, fAQID);
dbHelper.ExecuteNonQuery(dbCommand);
return true;
如何使用此代码开始事务并提交-
我使用的另一个函数是将数据从excel文件批量插入SQL server表
//series of commands to bulk copy data from the excel file into our sql table
OleDbConnection oledbconn = new OleDbConnection(excelFileConnStr);
OleDbCommand oledbcmd = new OleDbCommand(query, oledbconn);
oledbconn.Open();
OleDbDataReader dr = oledbcmd.ExecuteReader();
SqlBulkCopy bulkcopy = new SqlBulkCopy(sqlConnStr, SqlBulkCopyOptions.CheckConstraints);
bulkcopy.DestinationTableName = ssqltable;
while (dr.Read())
{
bulkcopy.WriteToServer(dr);
}
oledbconn.Close();
如何在此代码中使用begin transaction和commit–如果您的代码执行任何begin TRAN,请确保您也发出了commit TRAN。未提交的事务将使日志不断增长,即使您没有执行任何其他可能导致日志增长的操作。如果满足应用程序的需要,则应将数据库更改为“简单恢复”。这限制了事务日志的大小。但是godaddy支持人员告诉我,在他们的共享主机上不允许这样做,并告诉我,我必须检查我的查询以优化它们。它不能“满”,但可以利用所有可用空间。是的,我想知道使我的查询不使用事务日志。。godaddy告诉我回顾一下你的问题。。我不知道该怎么做,你能提供你运行最频繁的查询的例子吗?重复的insert语句可以快速填充事务日志。我的代码如下:Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase dbHelper=new Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase(System.Configuration.ConfigurationManager.ConnectionString[“ABestoreConnectionString”].ToString());SqlCommand dbCommand=(SqlCommand)dbHelper.GetStoredProcCommand(“Admin_FAQD”);AddInParameter(dbCommand,“@FAQID”,SqlDbType.Int,FAQID);ExecuteNonQuery(dbCommand);返回true;}catch(Exception){throw;}如何使用此代码开始事务并提交抱歉。。我在下面的答案中写代码,因为当我在这里写评论时,它看起来像一团乱麻。谢谢,请看一下