C# 使用事务时延迟加载内容
在使用事务编辑内容时,我觉得加载内容有点延迟, (测试这种情况对我来说有点困难,因为我不知道如何才能更好地测试它) 我对C# 使用事务时延迟加载内容,c#,asp.net,transactions,C#,Asp.net,Transactions,在使用事务编辑内容时,我觉得加载内容有点延迟, (测试这种情况对我来说有点困难,因为我不知道如何才能更好地测试它) 我对交易用法有一些疑问: 关于交易,我应该了解一些小问题和事情 这些部分与这个问题有关: 我们什么时候应该在自制的CMS中使用事务处理? 我的个案说明: 我是否应该在任何CMS上使用事务,而我们在插入、更新、检索等方面有存储过程 当我们处理多个表时,是否有必要使用事务 我使用的交易策略是: 添加产品方法(使用添加产品存储过程): TransactionOpt
交易
用法有一些疑问:
关于交易,我应该了解一些小问题和事情
这些部分与这个问题有关:
我们什么时候应该在自制的CMS中使用事务处理?
我的个案说明:
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();
}
事务可能有助于确保数据库的一致性。例如,如果用于添加产品的存储过程在多个表中插入数据,并且在过程中出现故障,则事务可能有助于回滚整个操作,因此数据库中没有未完成的产品(例如,相关表中缺少一些关键信息) 事务作用域(
TransactionScope
)用于为代码块内运行的任何代码提供环境隐式事务。这些作用域可能有助于大大简化代码,但是,它们也可能会增加多线程环境中的复杂性(不幸的是,我不太了解这种情况)
因此,您提供的代码可能有助于确保数据库的一致性,特别是当命令使用多个表时。它可能会增加一些性能开销;但是,在进行任何优化之前,最好依靠收集的分析数据,而不是任何感觉(即,尝试收集一些定量数据,以了解事务处理的速度有多慢)。现代数据库引擎通常非常高效地处理事务;根据我自己的经验,由于它们的性能开销,没有要删除的事务。谁制作了CMS并不太相关。您似乎只更新了1个表,因此tx在此不执行任何操作。