Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

DELETE、INSERTを繰り返すとテーブルが肥大化する現象について

user9260455Dec 19 2013 — edited Dec 25 2013

Oracle11g R2 E.Eの環境です。

あるテーブルを毎日更新する処理を実行しているのですが、恐らくその影響か、しばしば「ユーザ表領域が不足」の

メッセージが表示されます。

該当テーブルは自動拡張を有効にしていて、ユーザ表領域はあえて自動拡張なしに設定しています。

処理の概要は、月次テーブルから当月レコードを全件DELETEし、明細テーブルから当月分を再集計して
その集計結果を月次テーブルにINSERTする、というものを毎日実行しています。

明細テーブルのほうは1日あたり数百件くらいしか増えていません。

主だったテーブルのレコード数を調べても、極端に大きいデータはありませんし、怪しいと思われる

該当の月次テーブルも百万件にも満たないです。

該当の月次テーブルから表示される画面結果は毎日正しいですし、「更新前が消えていない」という

事象は確認できません。

が、あり得ない推測かもしれませんが、「削除マークだけ付いて実は物理的にずっと持っている」ような

印象を受けます。

そうでもない限り、表領域が足りなくなる原因が分りません。

実際、ここ2年間で10回以上も表領域の拡張を行なっています。

(諸事情により、自動拡張は行なわず、しかも一気に大きく拡張も行ないません)

そのテーブルが実際にどうなっているのか、本当にいらない削除されたデータを抹消する設定とか、

何か確認する方法はあるのでしょうか?

推測ですみませんが、原因とか調べ方とかをご教示お願いします。

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 22 2014
Added on Dec 19 2013
6 comments
17,429 views