質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

5回答

194閲覧

本番稼動しているRDMSからレコードを消すことはありますか?

lirlia

総合スコア49

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2018/09/04 02:30

データベース初心者です。

本番で稼動しているDBであれば大体の場合において、無限にレコードが増大するイメージです。
レコードが増加してくるとパフォーマンスが劣化するだけではなく、ディスクも逼迫すると思います。

NoSQL系であればレコードに対してTTLを設定することで削除もできると思いますが、
Oracleを始めとするRDBMSにはそういう機能が無い認識です。

そこで質問です。

【質問】

ECサイトや銀行(勘定系)などでは数多くのレコードが毎秒追加されていると思いますが、これらに対してレコードのDELETEなどをバッチ的に行っているのでしょうか?

もし**「○○という手法で定期的に削除している・保存期間を定めているという方法」があればその方法を教えてください。または「そもそも削除しないで無限にディスク追加しているよ」**であればその旨教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

削除することもあれば、バックアップに退避してから削除する事もあります。

データが大量になると遅くなるから、どうしているんだろう?
というのが質問の意図だとすれば、
大量データを扱うのが要件であるなら、実現するために四苦八苦するのが普通です。

投稿2018/09/04 02:56

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

保存しなければならないデータは当然 delete しない前提ですが、必要なのは どこかに 保存してあるであって、DB に保存してあるではない場合もあります。こういう場合は定期的に別媒体に export して delete する運用をすることはあります。

またこの delete にしても、データ量が膨大だと delete 自体が時間かかってしまうので、日付単位でパーティション化しておいて、パーティション毎 drop するなんてこともあります。

※10年以上前に関わった超大規模案件(そういやあれはOracleだったな)では、毎日のレコード増加量がなんてレベルだったので、2ヶ月間しかDBには保存してませんでした。金融機関だとこのレベルでも保存期間が下手すると10年単位ですけど……

投稿2018/09/04 02:51

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

根本的に、永遠に削除すべきでないデータ(取引記録など)も多いです。

投稿2018/09/04 02:33

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lirlia

2018/09/04 02:37 編集

ありがとうございます。 永遠に削除すべきではないデータも多いとは思いますが、そもそも削除をするという概念はないということでしょうか?  DWHという思想がある以上、RDBMSには無限にためこないのではないか?というのが疑問の出発点でして、期間があけば不要なレコードもあるのかなと。
maisumakun

2018/09/04 02:39

不要になったレコードを削除することもありますが、それは一般には期間で切るものではないです。
maisumakun

2018/09/04 02:42

例えば、多対多のリレーションを結ぶための中間テーブルの行は、リレーション自体が変化すれば不要になります。
guest

0

もの(資料などの保存期間の定義)によりますが、DB分割をして定期的に別のDBやテーブルにバックアップをとり、そのデータを参照したい場合は別の機能から参照させるということをやったことがあります。
過去データをどのような頻度や角度・人やタイミングで参照するかによって作りが変わってきますね。

投稿2018/09/04 04:27

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

銀行関係ですと、データをDELETEしないで保存しなければならないシステムもあります。

投稿2018/09/04 02:40

編集2018/09/04 02:40
Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問