undo_retention:最適な取り消し保存時間を決定する

3295 ワード

次の式を使用してundo_を計算します.retentionパラメータの値:
undo_retention=undo size/(db_block_size * undo_block_per_sec)
次のクエリをコミットすることで、データベースで実際に生成された取り消しデータを計算できます.
sys@ORCL> select sum(d.bytes) "undo"
  2    from v$datafile d, v$tablespace t, dba_tablespaces s
  3   where s.contents = 'UNDO'
  4     and s.status = 'ONLINE'
  5     and t.name = s.tablespace_name
  6     and d.ts# = t.ts#;

      undo
----------
1048576000

次のクエリでundo_を計算できます.block_per_sec:
sys@ORCL> select max(undoblks / ((end_time - begin_time) * 3600 * 24)) "UNDO_BLOCK_PER_SEC"
  2    FROM v$undostat;

UNDO_BLOCK_PER_SEC
------------------
        .109816972   --            。
sys@ORCL> show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192

秒でundo_を計算retentionパラメータの値:
sys@ORCL> select 1048576000/(0.495726495726496*8192) from dual;

1048576000/(0.495726495726496*8192)
-----------------------------------
                         258206.897

v$undostatビューには、データベースが取り消しスペースを使用する方法の統計や、実行時間が最も長いクエリーなどの情報が含まれています.これらの情報を使用して、現在のデータベースで処理されているワークロードの取り消し領域のサイズを計算できます.v$undostatビューの各行には、10分間隔の取り消し統計が表示されます.テーブルには最大576行のデータが含まれ、各行に10分間記録されます.したがって、最大4日間の取り消しスペースの使用状況を表示できます.BEGIN_TIME:期間の開始時間.END_TIME:期間の締め切り時間.UNDOBLKS:10分間隔でデータベースが消費する取り消しデータブロックの数.TXNCOUNT:10分間隔で実行されるトランザクションの数.MAXQUERYLEN:このインスタンスが10分間隔で実行されたことを示します.クエリに最も時間がかかる(秒単位).MAXQUERYID:最も時間間隔の長いSQL文の識別子.NOSPACEERRCNT:データベースは、アクティブな事務所によって占有されているため、新しい取り消しデータを格納するのに十分なスペースがありません.TUNNED_UNDORETENTION:データベースは、所属するトランザクションを取り消した後も、取り消しデータを保持する時間が長くなりますを選択します.
sys@ORCL> select to_char(begin_time, 'hh24:mi:ss') BEGIN_TIME,
  2         to_char(end_time, 'hh24:mi:ss') END_TIME,
  3         maxquerylen,
  4         nospaceerrcnt,
  5         tuned_undoretention
  6    from v$undostat;

BEGIN_TI END_TIME MAXQUERYLEN NOSPACEERRCNT TUNED_UNDORETENTION
-------- -------- ----------- ------------- -------------------
17:37:31 17:43:00        1281             0                2062
17:27:31 17:37:31         978             0                1759
17:17:31 17:27:31         372             0                1153
17:07:31 17:17:31         974             0                1755
16:57:31 17:07:31         368             0                1151
16:47:31 16:57:31         968             0                1809
16:37:31 16:47:31         363             0                1205
16:27:31 16:37:31         961             0                1805
16:17:31 16:27:31         358             0                1200
16:07:31 16:17:31         957             0                1799
15:57:31 16:07:31         353             0                1195
15:47:31 15:57:31         953             0                1794
15:37:31 15:47:31         349             0                1190
15:27:31 15:37:31         948             0                1790
15:17:31 15:27:31         342             0                1185

   15 。
oracleは、指定された期間において、実行時間が最も長いクエリに基づいて、取り消し保持時間を向上または低減します.