永发信息网

如何修改oracle的scn值 系统改变号的详解

答案:2  悬赏:50  手机版
解决时间 2021-01-23 15:04
如何修改oracle的scn值 系统改变号的详解
最佳答案
1. SCN的定义
scn的英文全称就是 system change number, 中文直译过来就是系统改变号了.
有名字可以知道, scn其实是一串数字. 那么它到底是用来做什么的.
其实scn是oracle 根据1个时间点, 然后经过1个函数的运算后得出的1个数字. (x和y一一对应), 反之, 也可以通过scn号码经过反函数的运算得出时间.
也就是说, scn其实就是时间的另1种表示.
2. 系统为什么要把时间转化为SCN
原因很简单, 因为系统要用不同的SCN号码来比较, 例如A对象的SCN号码和B对象的SCN号码. 系统就会知道哪个SCN的号码更新, 就知道SCN对应的时间更迟了.
也就是说, oracle 会利用scn 来比较 时间上的先后或者新旧.
那为什么不用直接用时间来比较呢? 因为直接比较时间的话比较复杂啊.
回想起, sharepool 解析sql的概念, oracle会判断sql语句 在sharepool 里有没有被执行(解析)过, 如何判断呢? 很简单, 就是根据要执行的sql语句 跟sharepool 缓存的sql语句(其实是sql]语句的哈希码)比较啊.
问题是就是怎样比较了, 就是把sql语句的ASCII码根据函数转化为1个哈希码(数字)啊. 而不是直接地比较两条sql语句啊.
根本原因就是计算内部比较数字是很简单的, 而比较复杂一点的数据类型, 例如字符串,或者时间, 就相对复杂了.
所以系统会把时间转化为SCN, 就是为了方便不同时间之间的比较啊.
可以利用下面语句来获得当前的时间及当前时间所对应的scn:
[sql] view plaincopy
SQL> select dbms_flashback.get_system_change_number,SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number) from dual;
GET_SYSTEM_CHANGE_NUMBER SCN_TO_TIMESTAMP(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER)
------------------------ ---------------------------------------------------------------------------
1760283 29-APR-13 11.25.40.000000000 PM
那个1760283 就是SCN啦.
3. SCN的意义
SCN的意义很简单, 就是为了保证oracle数据和文件的一致性, 下面会详细分析常见的SCN, 来体会这个意义.
全部回答
可以私聊我~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
岳父病重,女婿是该忙着挣钱还是该回去看望呢
桐城保洁地址好找么,我有些事要过去,
京霸城际铁路霸州站到新都温泉孔雀城多远
智慧树幼儿园舞蹈班地址在哪,我要去那里办事
一汽威志v5用丰田5W40机油好吗
1999年双子座6月9日男生性格
善民家电维护保洁中心地址有知道的么?有点事
诚以舞艺术中心地址在什么地方,想过去办事,
新科技革命的三大支柱通常是指①能源 ②交通
笔记本电脑i5 7300HQ+GTX1050与AMD A10-9630P
可以免费随机打电话,有小飞机,你发的消息24
哪里下载原版系统
汇文通培训中心地址好找么,我有些事要过去,
京东商城里的电脑组装机哪个牌子的主机比较好
DSP通过SPI与CPLD如何通信
推荐资讯
跆拳道 半决赛/铜牌赛 是什么意思?
中国工商银行牡丹交通灵通卡
根据你的生活经验和所学的化学知识,判断下列
无理取闹是什么意思啊?
石造型(鹤壁金融大厦店)地址在哪,我要去那里
国色天香专业美容院地址在哪,我要去那里办事
广州到辽宁辽阳圆通快递要多少天
小童星双语幼儿园(国营东和农场)地址在什么地
在ssd上用重启还原软件对ssd有伤害么
x战警 金刚狼的再生问题 如果砍掉他的胳膊 或
优才教育课后辅导地址好找么,我有些事要过去
酸奶喝多了怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?