web-dev-qa-db-ja.com

表領域の特異性

私はデータベースの操作にかなり慣れておらず、表領域の目的を完全に理解しようとしています。

ユーザーが実行する必要のあるタスクのスケジュールを入力するシステムがあるとしましょう。このスケジュールは私のデータベースに保存され、タスクを分散するプロセスに送信されます。タスクが完了すると、結果は別のプロセスに送信されます。このプロセスは、生の結果データを保存し、結果を相関させ、相関の要約を保存してから送信します。

このすべてのデータを単一のテーブルスペースに保持しますか、それとも2つのテーブルスペースに分割する方が理にかなっていますか?1つはスケジュール用で、もう1つは生の結果と相関結果の要約を格納しますか?

一般に、テーブル/インデックスを同じテーブルスペースに格納するには、どの程度関連させる必要がありますか?

2
George

10年前に回答されたにもかかわらず、SOに関するこの同様の質問からのJustin Caveの非常に適切な回答を改善できるとは思いません: Oracleデータベースにはデータストレージ用に複数のテーブルスペースが必要ですか?

私の偏見(そしてこれは主に個人的な好みの問題です)は、追加の表領域を作成することに説得力のある利点がない場合、単一の表領域で作業が楽になるということです。

  • オブジェクトを異なる表領域に配置しても、パフォーマンス上の利点はありません。テーブルとインデックスを分離するとパフォーマンスが向上するという古い神話があります。使用可能なすべてのスピンドルにI/Oを分散することには潜在的な利点がありますが、OracleはSANはI/Oを均等化するためにまだ何かをしていません。
  • 小さいトランザクションテーブルスペースを持ってくるだけでデータベースの新しいコピーをクライアントサイトに持ってくることができるような大きな静的ルックアップ/履歴テーブルがある場合、それは複数のテーブルスペースを検討する理由になります。しかし、この種の設定を備えたアプリケーションはほとんどありません。 200 GBをすべて持参する必要がある場合は、テーブルスペースの数は関係ありません。
  • 同様に、大きな読み取り専用オブジェクトがある場合、それらを読み取り専用テーブルスペースに配置すると、バックアップに必要な時間とスペースを大幅に削減できます。繰り返しになりますが、これはデータウェアハウス以外では実際には特に一般的ではありません。
  • オブジェクトのサブセットなしでアプリケーションを実行できる場合は、個別の表領域を作成して、1つをオフラインにして、表領域レベルのリストアを実行できるという利点がある場合があります。ただし、オブジェクトのセットなしで実行できるアプリケーションはほとんどありません。たとえば、インデックステーブルスペースを失った場合、アプリケーションはすべてを失ったのと同じように死んでしまう可能性があります。
  • 空のテーブルまたはほとんど空のテーブルが多数あり、非常に大きなテーブルが多数ある場合は、スペース使用率の観点から、エクステント割り当てポリシーが異なる個別のテーブルスペースが望ましい場合があります。これは、特定のインストールで使用可能なテーブルの比較的小さな割合を使用していて、空の各テーブルに比較的大きなエクステントを割り当てたくないパッケージ化されたアプリで時折発生します。ローカルで管理されている表領域での自動エクステント管理では、これは大きな問題にはならない傾向があります。均一なエクステントを使用する場合は、さらに問題になる可能性があります。
  • 異なるオブジェクトのディスクパフォ​​ーマンスの優先順位が異なり、使用可能なディスクのタイプが異なる場合、テーブルスペースを分けることで、異なるオブジェクトを異なるディスクセットに配置できます。たとえば、データウェアハウスでは、古いデータを低速で安価なディスクに配置し、新しいデータをより高価なディスクに配置することができます。これは、OLTPアプリケーションではあまり発生しません。

アプリケーションがこれらの特殊なケースのいずれかに該当しない限り、個別の表領域を持つことの唯一の利点は、DBAの組織化の感覚に訴えることです。個人的には、オブジェクトを作成するたびにテーブルスペース名を指定することを避けたり、デフォルトのテーブルスペースでオブジェクトが誤って作成されることが避けられない場合に、「間違った」テーブルスペースからオブジェクトを移動するサイクルを費やしたりできることを嬉しく思います。個人的には、均一なエクステントサイズが異なる手動で最適化されたテーブルスペースのセットに対して自動エクステント管理を備えたローカル管理のテーブルスペースを使用するときに、数十MBのスペースが「無駄」になるかどうかについてはあまり心配していません。一方、優れたDBAは、物事が「まさしく」整理されることを非常に懸念する傾向があるため、DBAが誰かの美的感覚に訴えるという理由だけで、インデックスとデータの表領域を分離したい場合、私は戦闘的に反対しません。

3
Kris Johnston