- PR -

Oracle8.0.5 REDOログについて

投稿者投稿内容
さらのとうちゃん
会議室デビュー日: 2005/04/07
投稿数: 11
投稿日時: 2005-04-08 10:17
おはようございます。
いーたさん、カーニーさん
ご回答ありがとうございます。


 引用:
 --------------------------------------------------------------------------------
  aaa1テーブルの全件をxxx1テーブルにINSERTしているので、
  aaa1テーブルのレコード総件数がわかれば
  おおよそのサイズがわかるのではないでしょうか?
 --------------------------------------------------------------------------------
aaa1テーブルの全件ではなく。
対象レコードのみxxx1にバックアップします。(レコードバックアップみたいな感じです。)

2件修正する場合は、
コード:001、名称:あいうえお、実績値:1000
コード:002、名称:かきくけこ、実績値:2000
だけをxxx1テーブルにInsertします。


 引用:
 --------------------------------------------------------------------------------
  UPDATE/INSERT/DELETEを行っていればREDOログが生成されるので関係あると思います。
  こちらについても該当する件数がわからないでしょうか?
 --------------------------------------------------------------------------------
更新処理2は夜間バッチでも使用していると以前にも回答させていただきましたが、
更新処理2(バッチ)のREDOログ使用量を計測してみた結果
更新処理2バッチではなさそうです。
ちなみに画面からの修正で
「UPDATE/INSERT/DELETE」は合わせて20回くらいです。
夜間バッチ処理ではもっと多いです。(前日のデータを追加する為)


「BeginTran」の後に
「Select * from aaa1 For Update NoWait」を行いエラーでなければ、
「LOCK TABLE aaa1 IN EXCLUSIVE MODE NOWAIT」
を行っているのですが、上記ようなこと行うと
REDOを大幅に使用するのでしょうか?

「For Update Nowait」、「IN EXCLUSIVE MODE NOWAIT」
は更新処理1・更新処理2を実行する前に
行っています。

更新処理後とにトランザクションスタートし、コミットしている様な
ロジックになっています。

よろしくお願いします。

いーた
大ベテラン
会議室デビュー日: 2004/07/12
投稿数: 154
お住まい・勤務地: 東京
投稿日時: 2005-04-08 11:49
SQL*PlusでAUTOTRACEをONにして処理を実行してみる事はできるでしょうか?
redo sizeという項目に書き込まれたREDOログのサイズがわかります。
↓が参考になります。
http://www.atmarkit.co.jp/fdb/rensai/orasql05/orasql05_4.html

また、オンライン処理時間中に監査や統計情報の取得等を行っているという事はないでしょうか。
さらのとうちゃん
会議室デビュー日: 2005/04/07
投稿数: 11
投稿日時: 2005-04-08 13:30
> SQL*PlusでAUTOTRACEをONにして処理を実行してみる事はできるでしょうか?
ですが、
Init.oraに
TIMED_STATISTICS = TRUE
SQL_TRACE = TRUE
を追加するのとはまた別ですよね?

AUTOTRACEはSQL*Plusで実行した
SQLに対して実行計画等をとるものではないのでしょうか?

バッチを実行して、
何かのファイルに出力されるのでしょうか?
よろしくお願いします。

今はテスト機で行っていますので、
実行は可能です。
(テスト機は本番機と同じ構成になっています。)
さらのとうちゃん
会議室デビュー日: 2005/04/07
投稿数: 11
投稿日時: 2005-04-08 14:57
先が見えてきたようなきがます。

SELECT
    *
FROM
    aaa1
FOR UPDATE NOWAIT

のSQL文の実行計画をとってみたところ
REDO SIZEが
2Mも使用されていました。

その後に
LOCK TABLE aaa1 IN EXCLUSIVE MODE NOWAIT
と表ロックをしているので
FOR UPDATE NOWAIT
の意味がない様な気がしてきました。

約13,000件のテーブルに行ロックすると
2MByteREDOを使用するみたいです。


[ メッセージ編集済み 編集者: さらのとうちゃん 編集日時 2005-04-08 14:58 ]

スキルアップ/キャリアアップ(JOB@IT)