SQL Azure 连接和事务
SQL Azure Connection and Transaction
我将 SQL Azure 用于基于 Saas 的 asp.net 应用程序。我已尽可能避免事务以防止最终用户出现死锁。这是由于我缺乏数据库设计方面的知识,但我认为避免事务至少是减少 table 和行锁的一种可靠方法,因此可以减少用于 SaaS 的数据库中的争用和死锁问题。
所以我没有在 .net 中使用任何形式的显式数据库事务。现在假设我在 .net 中打开了一个 SQLConnection 和一个在 Table1 中插入信息的 运行 插入语句,然后在不关闭连接的情况下我还在 Table2 和 Table3 中插入。所有这些插入都将成为隐式事务的一部分吗?
不,多语句事务是显式打开的。我相信有一些深奥的设置可以用来隐式打开一个,但我认为这些是严重的设计错误和邪恶。
我不明白你为什么想要这种行为。相反,显式地打开一个事务。交易的打开方式不会导致行为差异。
but I thought avoiding transaction is atleast one sure way of reducing table and row locks and therefore contention and deadlocks issues in a database being used for SaaS.
这在启发式上是正确的。我宁愿建议您熟悉锁定等基础知识。通过正确使用事务,您可以获得大量的开发效率。基本的事务使用其实很简单。打开快照隔离。您想要这个的可能性约为 99%。
我将 SQL Azure 用于基于 Saas 的 asp.net 应用程序。我已尽可能避免事务以防止最终用户出现死锁。这是由于我缺乏数据库设计方面的知识,但我认为避免事务至少是减少 table 和行锁的一种可靠方法,因此可以减少用于 SaaS 的数据库中的争用和死锁问题。
所以我没有在 .net 中使用任何形式的显式数据库事务。现在假设我在 .net 中打开了一个 SQLConnection 和一个在 Table1 中插入信息的 运行 插入语句,然后在不关闭连接的情况下我还在 Table2 和 Table3 中插入。所有这些插入都将成为隐式事务的一部分吗?
不,多语句事务是显式打开的。我相信有一些深奥的设置可以用来隐式打开一个,但我认为这些是严重的设计错误和邪恶。
我不明白你为什么想要这种行为。相反,显式地打开一个事务。交易的打开方式不会导致行为差异。
but I thought avoiding transaction is atleast one sure way of reducing table and row locks and therefore contention and deadlocks issues in a database being used for SaaS.
这在启发式上是正确的。我宁愿建议您熟悉锁定等基础知识。通过正确使用事务,您可以获得大量的开发效率。基本的事务使用其实很简单。打开快照隔离。您想要这个的可能性约为 99%。