我不是DBA,而且我在理解Oracle的事务管理流程时遇到了一些困难.
通过阅读互联网上一些看起来很可靠的页面(最值得注意的是这个AskTom注释 - 但不要轻视这些注释)我理解了这一点,当提交一个事务时,新数据还没有在实际数据块上报告,但保持登录回滚段.当有人对数据发出SELECT时,或者当UNDO_RETENTION秒已经过去时 - 无论这两个事件中的哪一个先发生 - 那么新数据就会(然后才会)写在数据块上.
但据我所知,我们公司的某个人最近告诉我相反的情况:根据他的说法,当提交事务时,新数据会立即写入数据块,并且回滚段/撤消表空间保留旧数据UNDO_RETENTION秒的持续时间.在此期间,此旧数据可用于在事务之前在SCN上启动的查询进行访问.
那么,Oracle内部究竟发生了什么,您是否可以提供备份回复的参考?
我们使用的是Oracle 9.2.0.8.
提前致谢.
我已经开始学习,NLTK
并且正在从这里开始学习教程,他们在这里使用像这样的双字母组合来找到条件概率。
import nltk
from nltk.corpus import brown
cfreq_brown_2gram = nltk.ConditionalFreqDist(nltk.bigrams(brown.words()))
Run Code Online (Sandbox Code Playgroud)
但是,我想使用三字母组找到条件概率。当我试图改变nltk.bigrams
到nltk.trigrams
我碰到下面的错误。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "home/env/local/lib/python2.7/site-packages/nltk/probability.py", line 1705, in __init__
for (cond, sample) in cond_samples:
ValueError: too many values to unpack (expected 2)
Run Code Online (Sandbox Code Playgroud)
如何使用三字母组合来计算条件概率?