ORACLEパーティションテーブルのデザイン


パーティションテーブルの概念パーティションは、大きなテーブルとインデックスに対応する重要な問題を解決するために取り組んでいます。彼らが小さくて管理しやすいように分解されたパーティションと呼ばれるピース(piece)という方法を採用しています。一旦パーティションが定義されると、SQL文はテーブル全体ではなく、どこかのパーティションにアクセスできるので、管理の効率が向上します。パーティションはデータストアのアプリケーションにとって非常に効果的です。パーティションテーブルの分類Range partitioning(範囲パーティション)Hash partitioning(ハッシュパーティション)List partitioning(リストパーティション)Compsite range-hash partioning(範囲-ハッシュコンフィギュレーションパーティション)Compsite range-list partitning(範囲-リストコンフィギュレーションパーティションパーティション)は、テーブルのレコードを、ある列の値で分割することができます。。いくつかのデータを処理したいですが、これらのデータはいつもある範囲に属します。例えば、月です。データがパーティションの範囲によって均等に分布できれば、最適な性能が得られます。データ分布が不均一であれば、他のパーティション方式を選択しなければならないかもしれません。CREATE TABLE sales(invoice_no NUMBER,sale_year INT NOT NULL、sale_mons INT NOT NULL、sale_day INT NOT NULL PATION BY RANGEyear,sale_mons,sale_day)(PATION sales_q 1 VALES LESS THAN(1999、04、01)TABLESPACE tsa、PATION sales_q 2 VALES LESS THAN(1999、07、01)TABLESPACE tsb、PATION sales_q 3 VALES LESS THAN(1999、10、01)TABLESPACE tsc、PATION sales_q 4 VALES LESS THAN(2000,01,01)TABLESPACE tsd;いつHASHパーティションを選択しますか?データが使用しにくいなら、性能とテーブルの管理性を向上させたいです。Hashパーティションは、指定された数のパーティション内でデータをクロスさせる方法を提供します。行は、パーティションキーのhash値に従って、対応するパーティションにマップされます。hashパーティションを作成して使用して、データを柔軟に置くことができます。異なるI/Oデバイスにクロスアクセスすることで、パーティションの性能を向上させます。CREATE TABLE scubagar(id NUMBER、name VRCHAR 2(60)PARTTION BY HASH(id)PARTTIONS 4 STORE IN(gear 1、gear 2、gear 3、gear 4)リストパーティションをLISTパーティションで選択すると、いくつかのデータを直接コントロールして、いくつかのパーティションにマップすることができます。不連続なパーティションのキー値を指定できます。RANGEパーティション(キーの範囲でパーティションを区切る)とは違って、HASHパーティション(どのラインがどのパーティションに写るかは制御できません)とも違います。CREATE TABLE q 1_sales_by_region(deptno number、deptname varrhar 2(20)、quarterly_sales number(10,2)、state varrhar 2(2)PATION BY LIST(state)(PARTTION q 1_northwest VALES('OR'、'WA')、PARTTION q 1_southwest VALES('AZ'、'UT'、'NM')、PARTTION q 1_northeast VULES('NY'、'VM'、'NJ')、PARTTION q 1_southeast VALL('FL'、'GA')、PATION q 1_northcentral VALL('SD'、'WI')、PARTTION q 1_southcentral VALL('OK','TX')パーティションテーブルのデザインはどのようにパーティションの種類を選択しますか?その前に、あなたの目的を明確にしなければなりません。管理性と性能、どちらを重視しますか?パーティションテーブルの影響の方面は以下の種類に分類できます。性能、管理性、データ整理。以下ではそれぞれのパーティションテーブルの具体的な影響について説明します。性能:これは一般的にパーティションの主な目的です。パーティションは大きいテーブルを小さいテーブルに変えて、whereの後の条件がパーティションフィールドの具体的な値を表す時、全表スキャンを避けました。管理しやすい:大規模なデータが含まれているテーブルに対して、パーティションによる管理が容易であることは非常に明らかである。非パーティションテーブルに基づくインデックスを提案すると、インデックス全体を作成する唯一の選択があります。テーブルがパーティションされている場合、このテーブルに従ってインデックスを作成できます。ind_01 reuild partition y 05;このほかにも、表の空間を変えたり、表のデータをエクスポートしたり、表のデータを削除したりすることができます。データの整理:私達はいつもテーブルのいくつかの履歴データを削除しなければならなくて、普通はdeleteで、しかしこれはundoとredoの情報の急速な増加を招くことができて、その上データベースの全体の性能に影響します。この時、私達はdropのあるパーティションを利用してこの任務を完成することができます。a drop partition y 01;テーブルのパーティションが削除されると、対応するlocalインデックスも同時に削除されます。globalインデックスがまだ存在すれば、unusable状態になります。このようなことが起こらないように、お使いください。a drop partition y 01 udate global indexes;