快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

网赌新浦金可靠吗:Oracle10g对回滚操作时间的准确评估(1)回滚操作



导读当在 Oracle Database 10g 中回滚经久运行的事务时 — 无论是并行实例规复会话照样用户履行的回滚语句 — 您所需做的统统便是查看视图V$SESSION_LONGOPS 并评估还必要若干光阴。

当在 Oracle Database 10g 中回滚经久运行的事务时 — 无论是并行实例规复会话照样用户履行的回滚语句 — 您所需做的统统便是查看视图 网赌新浦金可靠吗V$SESSION_LONGOPS 并评估还必要若干光阴。

在 Oracle 9i Database 及更低的版本网赌新浦金可靠吗中,您可以履行查询:

SELECT USED_UREC

FROM V$TRANSACTION;

该语句返回由当前事务所应用的重做记录的数量,而假如重复地履行该语句,将会显示继续削减的数值,由于回滚进程在其处置惩罚历程中会开释重做记录。随后您可以经由过程对一段距离进行快照来谋略其速度,然后揣摸出评估停止光阴的结果。

虽然在视图 V$TRANSACTION 中有一个名为 START_TIME 的列,但该列只显示全部事务的肇端光阴(也便是在回滚履行之前)。是以,除了揣摸,您没有法子知道回滚实际上是在什么光阴履行的。

事务回滚的扩展统计信息

在 Oracle Database 10g 中,这种操作很简单。当事务回滚时,事故被记录在视图 V$SESSION_LONGOPS 中,该视图显示经久运行的事务。用于回滚,假如进程耗时跨越六秒,则记录呈现在该视图中。在回滚履行今后,您可能会暗藏所查看的监视屏幕并履行以下的查询:

select time_remaining

from v$session_longops

wher网赌新浦金可靠吗e sid = ;

既然您意识到这个视图 V$SESSION_LONGOPS 的紧张性,就让我们来看它必须供给的其他信息。该视图在 Oracle Database 10g 的预览版中供给,但没有捕获关于回滚事务的信息。为了以一种易读的要领显示所有的列,我们将应用由 Tom Kyte 在 AskTom.com 中所描述的 PRINT_TABLE 函数。此历程简单地以表格要领而不是常用的行要领来显示列。

SQL> set serveroutput on size 999999

SQL> exec print_table('select * from v$session_longops where sid = 9')

SID : 9

SERIAL#  : 68

OPNAME:Transaction Rollback

TARGET:

TARGET_DESC  :xid:0x000e.01c.00000067

SOFAR : 20554

TOTALWORK : 10234

UNITS :Blocks

START_TIME:07-dec-2003 21:20:07

LAST_UPDATE_TIME :07-dec-2003 21:21:24

TIME_REMAINING: 77

ELAPSED_SECONDS  : 77

CONTEXT  : 0

MESSAGE  :Transaction Rollback:xid:0x0网赌新浦金可靠吗00e.01c.00000067 :

10234 out of 20554 Blocks done

USERNAME :SYS

SQL_ADDRESS  :00000003B719ED08

SQL_HASH_VALUE: 1430203031

SQL_ID:306w9c5amyanr

QCSID : 0

留意,此处显示对行的所有变动,纵然删除并从新插入行时也是如斯。VERSION_OPERATION 列显示对该行履行的操作 (Insert/Update/Delete)。完成这些操作不必要历史表或额外的列。

让我们仔细反省这些列中的每一列。在会话中可能会有跨越多个经久运行操作 — 分外是由于视图中包孕曩昔的会话中所有经久运行操作的历史。列 OPNAME 显示该记任命于“事务回滚”,这为我们指出了精确的偏向。列 TIME_REMAINI网赌新浦金可靠吗NG 显示所评估的残剩光阴秒数,这在前面已经描述过,而列 ELAPSED_SECONDS 显示到今朝为止所耗损的光阴。

那么该表若何供给对残剩光阴的评估呢?可以在列 TOTALWORK 中找到线索,该列显示要完成的“事情”总量,还有 SOFAR 显示到今朝为止已经完成了若做事情。事情的单位显示在列 UNITS 中。在本例中以数据块为单位;是以,到今朝为止已经回滚了 20,554 个数据块中共计 10,234 个数据块。此操作到今朝为止已耗损了 77 秒。是以,残剩数据块将耗损:

77 * ( 10234 / (20554-10234) ) ˜ 77 秒

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: