>  기사  >  데이터 베이스  >  오라클 테이블 파티셔닝이란?

오라클 테이블 파티셔닝이란?

WBOY
WBOY원래의
2022-05-25 16:30:254149검색

오라클에서 테이블 파티셔닝은 테이블의 데이터가 계속 증가할 때 테이블의 데이터를 물리적으로 여러 테이블스페이스에 저장하는 것을 의미합니다. 즉, 테이블 파티셔닝은 테이블, 인덱스 또는 인덱스 구성 테이블을 파티셔닝할 수 있습니다. 이러한 데이터베이스 개체의 세그먼트를 파티션이라고 하며 관리 용이성, 성능 및 가용성을 향상시킵니다.

오라클 테이블 파티셔닝이란?

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

Oracle 테이블 파티셔닝이란 무엇인가요?

파티션된 테이블: 테이블의 데이터 양이 계속 증가하면 데이터 쿼리 속도가 느려지고 애플리케이션 성능이 저하됩니다. 테이블 파티셔닝.

테이블을 분할한 후에도 논리적 테이블은 여전히 ​​완전한 테이블이지만 테이블의 데이터는 물리적으로 여러 테이블스페이스(물리적 파일)에 저장되므로 데이터를 쿼리할 때마다 스캔되지 않습니다. 전체 테이블.

테이블 파티셔닝의 구체적인 역할

오라클의 테이블 파티셔닝 기능은 관리 효율성, 성능 및 가용성을 향상시켜 다양한 애플리케이션에 큰 이점을 제공합니다. 종종 분할은 특정 쿼리 및 유지 관리 작업의 성능을 크게 향상시킬 수 있습니다. 또한 파티셔닝은 일반적인 관리 작업을 크게 단순화할 수 있으며 기가바이트 데이터 시스템 또는 초고가용성 시스템을 구축하는 핵심 도구입니다.

파티셔닝 기능은 테이블, 인덱스 또는 인덱스 구성 테이블을 세그먼트로 더 세분화할 수 있습니다. 이러한 데이터베이스 개체의 세그먼트를 파티션이라고 합니다. 각 파티션에는 고유한 이름이 있으며 고유한 스토리지 특성을 선택할 수 있습니다. 데이터베이스 관리자의 관점에서 분할된 개체에는 여러 세그먼트가 있으며 이러한 세그먼트는 집합적으로 또는 개별적으로 관리될 수 있습니다. 이는 분할된 개체를 관리할 때 데이터베이스 관리자에게 상당한 유연성을 제공합니다. 그러나 애플리케이션 관점에서 볼 때 분할된 테이블은 분할되지 않은 테이블과 동일하므로 SQL DML 명령을 사용하여 분할된 테이블에 액세스할 때 수정이 필요하지 않습니다.

파티션 테이블을 사용할 때 공식적인 조언은 다음과 같습니다.

  • a 테이블 크기가 2GB를 초과합니다.

  • b. 테이블에는 기록 데이터가 포함되어 있으며 새 데이터가 새 파티션에 추가됩니다.

테이블 분할의 장점과 단점

장점:

  • a 쿼리 성능 향상: 분할된 개체에 대한 쿼리는 관심 있는 파티션만 검색할 수 있어 검색 속도가 향상됩니다.

  • b. 향상된 가용성: 테이블의 파티션에 장애가 발생하더라도 다른 파티션에 있는 테이블의 데이터를 계속 사용할 수 있습니다.

  • c. 간편한 유지 관리: 테이블의 파티션에 오류가 발생하여 데이터를 복구해야 하는 경우 파티션만 복구할 수 있습니다.

  • d. 균형 잡힌 I/O: 다양한 파티션을 디스크에 매핑하여 I/O의 균형을 맞추고 전체 시스템 성능을 향상시킬 수 있습니다.

단점:

파티션 테이블과 관련하여 기존 테이블을 파티션 테이블로 직접 변환할 수 있는 방법이 없습니다. 그러나 Oracle은 테이블의 온라인 재정의 기능을 제공합니다.

테이블 파티션의 여러 유형 및 작업 방법

1 범위 파티셔닝(범위) maxvalue

범위 파티셔닝은 파티션 생성 시 지정한 파티션 키에 따라 데이터를 각 파티션에 매핑합니다. . 이 분할 방법은 가장 일반적으로 사용되며 파티션 키는 날짜를 사용하는 경우가 많습니다. 예를 들어 판매 데이터를 월별로 분할할 수 있습니다.

범위 파티셔닝을 사용할 때 다음 규칙을 고려하십시오:

a 각 파티션에는 파티션에 포함되지 않는 상한 값을 지정하는 VALUES LESS THEN 절이 있어야 합니다. 파티션 키 값이 이 상한보다 크거나 같은 모든 레코드는 다음으로 높은 파티션에 추가됩니다.

b. 첫 번째 파티션을 제외한 모든 파티션에는 암시적인 하한 값이 있습니다. 이 값은 이 파티션의 이전 파티션의 상한 값입니다.

c. 일부 레코드의 범위를 아직 예측할 수 없는 경우 maxvalue 파티션을 생성하면 지정된 범위 내에 없는 모든 레코드는 maxvalue가 있는 파티션에 저장됩니다.

예제 1: 200,000개의 데이터 행이 있는 테스트 테이블이 있다고 가정합니다. 이 테이블을 ID로 분할합니다. 각 파티션은 100,000개의 행을 저장하므로 데이터 파일은 여러 물리적으로 확장될 수 있습니다. 디스크. 다음은 테이블과 파티션을 생성하는 코드입니다.

------여러 개의 테스트 테이블스페이스를 먼저 생성하세요

sys@ORCL>create tablespace test_ts01 datafile '/home/oracle/test_01.dbf' size 32m extent management local autoallocate;
Tablespace created.
sys@ORCL>create tablespace test_ts02 datafile '/home/oracle/test_02.dbf' size 32m extent management local autoallocate;
Tablespace created.
sys@ORCL>create tablespace test_ts03 datafile '/home/oracle/test_03.dbf' size 32m extent management local autoallocate;
Tablespace created.

----테스트 파티션 테이블 생성

create table test
(        id number not null,
         first_name varchar2(30) not null,
         last_name varchar2(30) not null,
         phone varchar2(30) not null,
         email varchar2(80),
         status char(1),
         constraint test_id primary key (id)
)
partition by range (id)
(        partition test_part1 values less than (100000) tablespace test_ts01,
         partition test_part2 values less than (200000) tablespace test_ts02,
         partition test_part3 values less than (maxvalue) tablespace test_ts03
);

추천 튜토리얼: "Oracle Video Tutorial"

위 내용은 오라클 테이블 파티셔닝이란?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.