오라클에서 테이블 파티셔닝은 테이블의 데이터가 계속 증가할 때 테이블의 데이터를 물리적으로 여러 테이블스페이스에 저장하는 것을 의미합니다. 즉, 테이블 파티셔닝은 테이블, 인덱스 또는 인덱스 구성 테이블을 파티셔닝할 수 있습니다. 이러한 데이터베이스 개체의 세그먼트를 파티션이라고 하며 관리 용이성, 성능 및 가용성을 향상시킵니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
파티션된 테이블: 테이블의 데이터 양이 계속 증가하면 데이터 쿼리 속도가 느려지고 애플리케이션 성능이 저하됩니다. 테이블 파티셔닝.
테이블을 분할한 후에도 논리적 테이블은 여전히 완전한 테이블이지만 테이블의 데이터는 물리적으로 여러 테이블스페이스(물리적 파일)에 저장되므로 데이터를 쿼리할 때마다 스캔되지 않습니다. 전체 테이블.
테이블 파티셔닝의 구체적인 역할
오라클의 테이블 파티셔닝 기능은 관리 효율성, 성능 및 가용성을 향상시켜 다양한 애플리케이션에 큰 이점을 제공합니다. 종종 분할은 특정 쿼리 및 유지 관리 작업의 성능을 크게 향상시킬 수 있습니다. 또한 파티셔닝은 일반적인 관리 작업을 크게 단순화할 수 있으며 기가바이트 데이터 시스템 또는 초고가용성 시스템을 구축하는 핵심 도구입니다.
파티셔닝 기능은 테이블, 인덱스 또는 인덱스 구성 테이블을 세그먼트로 더 세분화할 수 있습니다. 이러한 데이터베이스 개체의 세그먼트를 파티션이라고 합니다. 각 파티션에는 고유한 이름이 있으며 고유한 스토리지 특성을 선택할 수 있습니다. 데이터베이스 관리자의 관점에서 분할된 개체에는 여러 세그먼트가 있으며 이러한 세그먼트는 집합적으로 또는 개별적으로 관리될 수 있습니다. 이는 분할된 개체를 관리할 때 데이터베이스 관리자에게 상당한 유연성을 제공합니다. 그러나 애플리케이션 관점에서 볼 때 분할된 테이블은 분할되지 않은 테이블과 동일하므로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!