使用事务时加载内容的延迟

时间:2012-09-14 10:21:38

标签: c# asp.net transactions

使用交易编辑内容时,我觉得加载内容有些延迟, (测试这种情况对我来说有点困难,因为我不知道如何更好地测试它)

我对Transactions使用有疑问:

我应该了解一些关于交易的小问题和事情 这些部分与这个问题有关:

我们何时应该在自己制作的CMS中使用交易?

我的具体案例说明:

  1. 我应该在任何CMS上使用交易吗?虽然我们在插入,更新,检索上有sprocs ....?
  2. 是否有必要在我们处理更多的桌子时使用交易呢?
  3. 我使用的交易策略:

    添加产品方法(使用添加产品代码):

                TransactionOptions txOptions = new TransactionOptions();
                using (TransactionScope txScope = new TransactionScope
                  (TransactionScopeOption.Required, txOptions))
                {
                    try
                    {
                        connection.Open();
                        command.ExecuteNonQuery();
                        LastInserted = (int)pInsertedID.Value;
                        txScope.Complete();                        
                    }
                    catch (Exception ex)
                    {
                        logErrors.Warn(ex.Message);
                    }
                    finally
                    {
                        command.Dispose();
                        connection.Close();
                    }
    

1 个答案:

答案 0 :(得分:0)

事务可能有助于确保数据库的一致性。例如,如果用于添加产品的存储过程在多个表中插入数据,并且某些操作失败,则事务可能有助于回滚整个操作,因此数据库没有半生不熟的产品(例如在相关表格中缺少一些关键信息。)

事务范围(TransactionScope)用于为代码块内运行的任何代码提供环境隐式事务。这些范围可能有助于严重简化代码,但是,它们也可能在多线程环境中增加复杂性(遗憾的是,我对这种情况并不是很了解)。

因此,您提供的代码可能有助于确保数据库的一致性,尤其是在命令使用多个表的情况下。它可能会增加一些性能开销;但是,在进行任何优化之前,最好依靠收集的分析数据而不是任何形式的感觉(即尝试收集一些关于事务处理速度较慢的定量数据)。现代数据库引擎通常非常有效地处理事务根据我自己的经验,由于性能开销,没有删除事务。