2012-04-12 13 views
1

Oracle 11.2.0をバックエンドとして使用するビジネス・アプリケーションでは、一連の表Foo {0}を使用します。{0}は日付であり、毎月の終わりのテーブル(これがなぜ必要なのかに関する長い話ですが、それらは私の行進命令です)。各表には、すべての表に同じ列を使用する主キー制約と索引があります。すべてのテーブルに対して制約とインデックスを定義する代わりに、それぞれを作成してすべてのテーブルに適用することは可能ですか?助けてくれてありがとう。複数の表に対するOracleの制約の有効化

+3

なぜあなたはしないでくださいその日までに単一のテーブルとパーティションを作成しますか? –

+0

@a_horse_with_no_name - おそらくPartitioningはEnterprise Editionライセンスの追加料金となり、*高価なものになる可能性があるためです。 – APC

+0

今の主な問題はスケールです。現在のところ、すべてのデータが1つのテーブルに格納されていますが、アプリの要件により、多くの冗長データが作成されます。すぐにSQL/Azureに移行していますので、これらの冗長性を減らす方法を見つけようとしています。毎月、約25,000件のレコードが100個以上の列に書き込まれています。 – Joe

答えて

2

いいえ12個の別個の表が必要な場合は、12個の別個の主キー制約を定義する必要があります(制約を作成するときにOracleが自動的に索引を作成しないようにする場合は12個の個別索引)。

+0

ありがとうございます。それは私が想像したものですが、尋ねることは決してありません! – Joe

1

Oracle 11.2でこれらの12の表を作成する理由はありません。

私はお勧め:

  • 1つのテーブルを作成します。既存のコードとの互換性のために必要であれば
  • は、Foo1ためFoo2 ... Foo12をこのテーブルの上にビューを作成し、関連するグローバル索引を持つ単一の単一主キー制約を作成して12
  • に分割
+0

ありがとうございます。各テーブルはAsOfDate(毎月のデータ更新)に固有のものでしたが、AsOfDateを主キーに単純に組み込むと、私たちがどこになりたいかがわかります。 – Joe

関連する問題