Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果希望并发性最小,应该选择哪种隔离模式?_Sql_Database_Isolation - Fatal编程技术网

Sql 如果希望并发性最小,应该选择哪种隔离模式?

Sql 如果希望并发性最小,应该选择哪种隔离模式?,sql,database,isolation,Sql,Database,Isolation,如果您需要尽可能减少并发,那么哪种隔离级别(可重复读取、可序列化、已提交读取、未提交读取)最有效?可序列化提供了最多的隔离,因此并发最少 我猜您确实希望在这里尽可能地最大化并发性,以提高性能。不幸的是,仅仅选择一种隔离模式是不行的。关于这些隔离模式的真正问题是,您能否在特定的应用程序中使用它们 这实际上取决于应用程序的详细信息,而这可能不是我们可以在堆栈溢出时调试的 但是,一般来说,假设您没有数据损坏,从最并发到最不并发,Oracle的隔离级别为: 读未提交 阅读承诺 可重复读取 可序列化 比如

如果您需要尽可能减少并发,那么哪种隔离级别(可重复读取、可序列化、已提交读取、未提交读取)最有效?

可序列化提供了最多的隔离,因此并发最少


我猜您确实希望在这里尽可能地最大化并发性,以提高性能。不幸的是,仅仅选择一种隔离模式是不行的。关于这些隔离模式的真正问题是,您能否在特定的应用程序中使用它们

这实际上取决于应用程序的详细信息,而这可能不是我们可以在堆栈溢出时调试的

但是,一般来说,假设您没有数据损坏,从最并发到最不并发,Oracle的隔离级别为:

  • 读未提交
  • 阅读承诺
  • 可重复读取
  • 可序列化
  • 比如说,PostgreSQL就不同了,因为它使用了不同的同步模型(),其中读取是免费的,但是当您编写时,您就有回滚的风险


    我想这个问题的真正答案是,询问并获取关于多天学习材料的线索,或者只是雇佣一个人来处理你的特殊情况。虽然这是一项非常技术性的工作,但没有硬性规定:您需要了解正在发生的事情背后的理论和具体情况,以便提出有用的建议。

    请指定您使用的数据库品牌。事务隔离级别因RDBMS品牌的行为和术语而异。这可能有助于解释为什么要最小化并发性。这就是最小化性能,这不是人们通常要求的。@Bill Karwin:我猜他指的是SQL标准