Oracleクエリー・パフォーマンスの向上-単純範囲パーティション・テーブルの作成

2661 ワード

パーティション表の利点:


1.クエリーのパフォーマンスの向上:テーブル全体ではなく特定のパーティションを検索するだけで、クエリーの速度が向上します.
2.メンテナンス時間の節約:単一パーティションのデータマウント、インデックス再構築、バックアップ、メンテナンスはテーブル全体のメンテナンス時間よりはるかに小さい.次に、パーティションテーブルを作成します.

ステップ1:IOのパフォーマンスを向上させるためにパーティションテーブルの専用テーブルスペースを作成する


SELECT NAME FROM v$datafile;--おなじみの環境であれば省略します.現在のファイルパスを表示することを目的としています.表領域を作成し、専任者が表領域をできるだけ閉じて自動的に成長し、長時間無人で維持すると自動的に成長します.AUTOEXTEND ON SIZECREATE TABLESPACE partition_p_Name1 DATAFILE '/oradata/orawms/partition_p_Name1.dbf' SIZE 200m AUTOEXTEND OFF;CREATE TABLESPACE partition_p_Name2 DATAFILE '/oradata/orawms/partition_p_Name2.dbf' SIZE 200m AUTOEXTEND OFF;CREATE TABLESPACE partition_p_Name3 DATAFILE '/oradata/orawms/partition_p_Name3.dbf' SIZE 200m AUTOEXTEND OFF;CREATE TABLESPACE partition_p_Name4 DATAFILE '/oradata/orawms/partition_p_Name4.dbf' SIZE 200m AUTOEXTEND OFF;CREATE TABLESPACE partition_p_Name5 DATAFILE '/oradata/orawms/partition_p_Name5.dbf' SIZE 200m AUTOEXTEND OFF;CREATE TABLESPACE goods_inf_max DATAFILE '/oradata/orawms/partition_p_max.dbf' SIZE 200m AUTOEXTEND OFF;

ステップ2:テーブルパーティションの作成


create table partition_tab_Name(
create_date DATE,create_man VARCHAR2(64),modify_date DATE,modify_man VARCHAR2(64),create_org VARCHAR2(20),create_orgseq VARCHAR2(512),create_role VARCHAR2(50),fields1 VARCHAR2(200),fields2 VARCHAR2(200),fields3 VARCHAR2(200),fields4 VARCHAR2(200),fields5 VARCHAR2(200),fields6 VARCHAR2(200),fields7 VARCHAR2(200),fields8 VARCHAR2(200),fields9 VARCHAR2(200),Fields 10 VARCHAR 2(200))PARTITION BY RANGE(create_date)--range(パーティションフィールド、ここでは時間範囲パーティションを作成する)(PARTION partition_p_Name 1 VALES LESS THAN(TO_date('2015-01-01','YYYYYY-MM-DD'))TABLESPACE partition_p_Name1,PARTITION partition_p_Name2 VALUES LESS THAN (TO_date('2016-01-01','YYYY-MM-DD')) TABLESPACE partition_p_Name2,PARTITION partition_p_Name3 VALUES LESS THAN (TO_date('2017-01-01','YYYY-MM-DD')) TABLESPACE partition_p_Name3,PARTITION partition_p_Name4 VALUES LESS THAN (TO_date('2018-01-01','YYYY-MM-DD')) TABLESPACE partition_p_Name4,PARTITION partition_p_Name5 VALUES LESS THAN (TO_date('2019-01-01','YYYY-MM-DD')) TABLESPACE partition_p_Name5,PARTITION partition_p_max VALUES LESS THAN (MAXVALUE) TABLESPACE partition_p_max);

ステップ3:データの挿入


INSERT INTO partition_tab_Name SELECT*FROM‘ソーステーブル名’;

第四歩:データテストを検索しましょう~

SELECT  * FROM goods_inf_r1 PARTITION(partition_p_Name1);--partition_p_Name2,partition_p_Name3~~~

転載先:https://blog.51cto.com/996665552/2136865