关于Oracle SCN的一些疑问

什么是SCN?SCN有什么用?这些问题百度谷歌很多讲解,这里不赘述。

我在纠结的是SCN的计算问题。

在好多文章中都提到了SCN的最大值的计算方法是power(2,48)【在Oracle12.2之前都是用6Bytes记录的,从12.2开始改用8Bytes】。

我的问题是:用6Bytes为什么用power(2,48)来计算呢?

首先,需要搞清楚power()函数的意义。

power是用来计算指定底数(number)的乘幂(power)。语法:power(number,power)。

第二,要知道为什么是用2作底数。

一般来说,n比特的信息量可以表现出2的n次方种选择。

根据规定,1Byte(B) = 8bits(b)。

【Byte意为“字节”,bit意为“位”或“比特”】

1bit=2^1=2

10bits=2^10=1024

2Bytes=2^(8×2)=65536

1个位的信息量等于2的1次方,1个字节的信息容量等于2的8次方。

因此:

6Bytes=2^(8×6)=281,474,976,710,656

使用Oracle的函数即为:power(2,48)。

你可能感兴趣的:(关于Oracle SCN的一些疑问)