gpt4 book ai didi

sql - DBMS 事务和序列化

转载 作者:搜寻专家 更新时间:2023-10-30 23:47:13 24 4
gpt4 key购买 nike

我们知道:

A schedule in which transactions are aligned in such a way that one transaction is executed first. When the first transaction completes its cycle then next transaction is executed. Transactions are ordered one after other. This type of schedule is called serial schedule as transactions are executed in a serial manner.

This execution does no harm if two transactions are mutually independent and working on different segment of data but in case these two transactions are working on same data, results may vary.

那么发现两个事务是 Serialize Schedule 的好处是什么?如果结果不同,有什么好处?

最佳答案

当事务访问相同的变量但顺序执行(即不同时执行)时,与只有一个事务执行(可能重复)时相比,“结果可能会有所不同”。对于串行事务,我们不知道(非重叠)事务的执行顺序。在重复事务执行开始时,我们所知道的是,自上次执行结束以来,其他事务可能已更改变量重复交易。 (虽然我们一般都知道一些它们是如何被留下的。)

这种“不同的结果”并没有错,因为它们只是反射(reflect)了交易是在不同的时间请求的。

当事务访问相同的变量并同时执行(即不是连续执行)时,那么对于每个事务,“结果可能会有所不同”(从另一种意义上说)与我们通常理解的代码的方式不同。这种正常的理解依赖于一次只执行一个事务。例如,通常如果代码两次读取一个变量而不写入它,那么我们期望得到相同的值。但是,如果另一个事务在读取之间写入它,则不能保证。例如,通常如果代码读取一个变量,那么我们期望得到该变量实际具有的值。但是,如果我们获取它的一些字节,然后另一个事务写入它,然后我们从该新值中获取其余字节,则不能保证这一点。

但如果事务是可序列化的,那么它们可以非串行执行(有重叠),但结果与串行执行(无重叠)相同。当只有一个交易执行时,代码意味着它通常意味着什么。

所以我们必须确保系统的行为就像交易是连续的,否则我们不知道我们的程序做了什么

可序列化调度是来自多个事务的交错操作,它给出与某些序列化(化)调度相同的结果。 执行可序列化计划不同于仅在一个事务的所有操作之后执行另一个事务的操作的好处是,通过同时从多个事务执行多个操作提高了吞吐量。

附言

您的报价出现在 web page 上那是一团糟。它甚至没有定义“可序列化的时间表”。您的引文之间的文字是

In a multi-transaction environment, serial schedules are considered as benchmark. The execution sequence of instruction in a transaction cannot be changed but two transactions can have their instruction executed in random fashion.

但是第二句应该开始但是在非连续剧的时间表中...。因为在串行计划中,“事务是一个接一个地排序的。”因此,报价单中的“结果可能会有所不同”是在非系列计划中

但是你没有回复我的评论:

Does "This execution" refer to a serial execution of transactions or to a non-serial execution of transactions? (What came before your second quote?)

关于sql - DBMS 事务和序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com