如何优化我的查询以避免在sql server中完整的事务日志

时间:2016-03-02 21:40:54

标签: sql sql-server tsql transactions transaction-log

我在Godaddy数据库服务器中发现我的数据库超限,我的支持团队告诉我这是因为完整的事务日志

在他们截断它之后因为我对我的共享主机没有管理权限,它在几周内再次满了

他们告诉我这是由于我的代码并要求我查看我的代码以优化它

但现在我不明白审查我的查询是什么意思

我的查询中是否有任何代码要写入以避免完整的事务日志

  

更新成员inquery

     

我的代码就像这样

        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;

如何使用begin transaction并使用此代码提交 -

我用于将数据从excel文件批量插入SQL服务器表

的另一个函数
     //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并使用此代码进行提交 -

1 个答案:

答案 0 :(得分:0)

如果您的代码执行任何BEGIN TRAN,请确保您还发出了COMMIT TRAN。即使您没有做任何其他会导致日志增长的事情,未提交的事务也会使日志保持增长。