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

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

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

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

Q&A

解決済

2回答

6921閲覧

ORACLEで4000BYTE以上を保持する方法

mno

総合スコア35

Oracle

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

0グッド

0クリップ

投稿2015/12/20 15:42

いつもお世話になっております。

DBにORACLEをを使用したWebシステムの開発を行っています。
ユーザから、「メールをデータとして保持しておきたい」ということで
以下の要望があります。
・運用上4000BYTE以上のメールを保持するケースがある
・現状メール本文を検索することは無いが、将来的には不明
・添付ファイルは添付ファイルのテーブルで管理している

これを実現するためいろいろな実現方法があります。

  1. VARCHAR2(4000)のカラムを複数作成して、AP側で分割/結合する
  2. サーバにファイルで保持する
  3. LOBで保持する

個人的には2を選択したのですが、他案の方が優れている点や、
また他にも良い方法があればご教授いただけないでしょうか。

環境:
DB:ORACLE 11g UTF-8
AP:ASP.NET C# .NET Framework 4.5
windows Server 2012R2で、HDDは100GB程度
O/R:Entity FrameworkでDBアクセス
DBは他者管理で、全文検索エンジンはインストールされていないとのこと。
NoSQLは今まで使用実績が無いです。

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

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

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

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

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

guest

回答2

0

Oracleのストアド・オブジェクトが保存される[ALL_SOURCE]をビューをご存知でしょうか?
このビューのようにメールを1行ごとVARCHAR2型で保存する案はどうでしょうか?
1行の最大サイズがVARCHAR2(4000)の制限を受けますが、
LOBで管理するよりも管理・検索しやすいと思います。

参考URL
Oracle® Databaseリファレンス 11gリリース2
ALL_SOURCE

投稿2015/12/20 22:19

nabe3

総合スコア345

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

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

mno

2015/12/21 14:31

案1を正規化する案ですね。 性能などが気になるため、試してみます。 ありがとうございました。
guest

0

ベストアンサー

1 の方法は読み書きの時点で結合と分解など本来不必要な操作が発生しますし、もし、将来的に検索が必要になった時、境界をまたいだ検索が問題になると思います。この方法は使うべきではないでしょう。

質問の本文から添付ファイルの具体的な保持方法が不明瞭なのですが、添付ファイルを物理ファイルとして保持し、テーブルから参照しているのであれば、既にファイル管理をしているわけですから、2 のサーバにファイルで保持する方法を使い、ファイルへの参照情報だけレコードで管理するのが自然だと考えます。

添付ファイルも DB 上で全てバイナリ化して保存しているのであれば、バックアップなど保守運用の一元化を目的として 3 の LOBで保持する方法に優位性が出てくるでしょう。折角 DB だけで完結していたのに、ファイル管理の手間を増やす価値があるのかどうか?運用規模や周辺の条件によっては、この方法も十分アリですね。

その他の方法としては、開発者や運用者が扱いに手馴れているファイル管理専用のサブシステムなどが、もし存在していれば、そちらを併用する事も考えられるかもしれませんが、仕掛けを組み合わせると処理フローや運用が複雑になりがちなため、要望に対しての解決策としては挙げられている 2 あるいは 3 の方法が無難なのではないでしょうか?ちなみに、前提条件なしに普通に組むなら私も 2 の方法を使うでしょうね。

投稿2015/12/20 22:51

ps13zier

総合スコア433

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

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

mno

2015/12/21 14:33

まだ検討段階のため、添付ファイルの実体をどこに保持するか未決定です。 ご意見ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問