Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
Java 如果我正确理解了Oracles的实现,我就不会有任何遗憾。Oracle只访问表中的一行一次,并将重用已获取的信息。但在某些情况下,它可能无法重用这些信息(会话外缓存等)_Java_Sql_Concurrency_Transactions_Isolation Level - Fatal编程技术网

Java 如果我正确理解了Oracles的实现,我就不会有任何遗憾。Oracle只访问表中的一行一次,并将重用已获取的信息。但在某些情况下,它可能无法重用这些信息(会话外缓存等)

Java 如果我正确理解了Oracles的实现,我就不会有任何遗憾。Oracle只访问表中的一行一次,并将重用已获取的信息。但在某些情况下,它可能无法重用这些信息(会话外缓存等),java,sql,concurrency,transactions,isolation-level,Java,Sql,Concurrency,Transactions,Isolation Level,因此,这将需要高度的理解,并且不应该在不考虑每一笔交易的情况下,就某些变化的影响,我指的是所有潜在的变化。所以,如果你想把这件事做好,你可以看到你的成本飞涨 我永远不会轻易地改变隔离级别,尤其是如果你没有为此而设计的话 这10%的加速是普通人能注意到的,还是某个工具能注意到的?换言之,该体系是否如此接近崩溃,以至于10%值得追求?我这样问是因为您可能会遇到更大的扩展问题,并且可能会获得更大的收益。更新会更改多少行?听起来像1。或者,换言之,code在该表中是唯一的吗?此外,您每秒运行此更新多少次

因此,这将需要高度的理解,并且不应该在不考虑每一笔交易的情况下,就某些变化的影响,我指的是所有潜在的变化。所以,如果你想把这件事做好,你可以看到你的成本飞涨


我永远不会轻易地改变隔离级别,尤其是如果你没有为此而设计的话

这10%的加速是普通人能注意到的,还是某个工具能注意到的?换言之,该体系是否如此接近崩溃,以至于10%值得追求?我这样问是因为您可能会遇到更大的扩展问题,并且可能会获得更大的收益。更新会更改多少行?听起来像1。或者,换言之,
code
在该表中是唯一的吗?此外,您每秒运行此更新多少次?请解释为什么无法使用
SELECT。。。用于更新
。是否允许您使用存储过程(可能包含该语句)?在启动此代码之前,您是否知道
old_status
?执行更新后是否需要
old_status
的值?(我质疑SELECT all的存在。)@Rick关于10%的加速,我必须信任DBA。如果他说值得一试,那么我们就去做。但我们想提前知道这一变化的影响。你说得对。我仔细检查了一下,我们没有在同一个事务中执行选择和更新。我的错,我将编辑问题以澄清这一点。
old_status = null;
do {
    old_status = SELECT status 
                 FROM bookings 
                 WHERE code=123;

    affected_rows = UPDATE bookings 
                    SET status=<new_status> 
                    WHERE code=123 AND status=<old_status>;

} while (affected_rows == 0);

// Now we can do stuff with <old_status> value