コンテキスト:Oracle 10データベース。このような状況でパーティションを使用するのは良い考えですか?
かなり大きなテーブル(数百万レコード)では、最近いくつかのパフォーマンスの問題が発生し始めました。テーブルにはいくつかの特殊な動作/条件があります。
- そのほとんどが一回書き込み、レコードが0..N(その列クラスを呼び出すことができます)から分類されている最初の日かそこら中に再度
- 変更されることは決してありません。その最初の日にレコードが数回再分類される可能性があります。
- 新しいエントリはクラス0で「未分類」を意味します。
- 1時間ごとにプロセスが新しいreocrdを分類し、1..N
- すべての読者がクラス1
- にのみ関心がある日より古いすべてのレコードはほとんど、自分のクラスを変更しない> 1で最もアクセスが行われているように、今、数日後に
をクリーンアップなっていますクラス1には、その列はしばしばクエリ(クラス= 1)に含まれ、他のcondit ons。クラス列にはインデックスがあり、他の列にはインデックスがあります。
私の質問に:私たちは今、クラスごとにテーブルを分割することを考えています。私が理解している限り、クラス= 1は残りのデータと既に分離されているため、データへのアクセスは暗黙的により効率的であるため、これによりデータの索引付け/作業が高速になります。これは正しいです?
これが良いアイデアであることに同意するならば、私はそのトピックをさらに読むでしょう!
おかげ 乾杯
を更新2010年11月30日
を入力いただき、誠にありがとうございます。私はその余分なオプションを知っていなかった:)それを指摘してくれてありがとう(私はそれにあまりにも多くの時間を投資する前に)。しかし、ライセンスの問題のほかに、パーティションは必ずしもこのような状況では良い解決策ではないように思われます。
パーティショニング(少なくともOracleの場合)は、高価なオプションであり、決してすべての状況で適切ではありません。 – APC