【发布时间】:2012-12-16 14:29:36
【问题描述】:
时间戳的定义是什么?
时间戳仅用于交易? (无论事务中有什么动作。时间戳始终是事务发生的时间。)
或者时间戳是针对交易的每个操作的? (每个动作都有一个时间戳。)
例如,当第一个 R1(X) 发生时,它有一个时间戳 TS。但是对于第二个 R1(X),时间戳是否与 TS 相同?还是时间戳已更改?
再举一个例子,如果我有 R1(X)W2(X)W1(X),它是可序列化的视图吗?它是可序列化的冲突吗?
【问题讨论】:
时间戳的定义是什么?
时间戳仅用于交易? (无论事务中有什么动作。时间戳始终是事务发生的时间。)
或者时间戳是针对交易的每个操作的? (每个动作都有一个时间戳。)
例如,当第一个 R1(X) 发生时,它有一个时间戳 TS。但是对于第二个 R1(X),时间戳是否与 TS 相同?还是时间戳已更改?
再举一个例子,如果我有 R1(X)W2(X)W1(X),它是可序列化的视图吗?它是可序列化的冲突吗?
【问题讨论】:
这可能取决于您使用的数据库。
对于 SQL Server,时间戳是通过使用返回当前数据库系统时间戳的 GetDate() 检索的。
因此,如果您使用 GetDate 插入一行来输入时间戳,然后 2 秒后在同一事务中插入另一行再次调用 GetDate,则第二次调用将在 2 秒后返回时间。
【讨论】: