728x90
반응형
SMALL

Data Base 163

부분 범위 처리, 운반 단위, arraysize 조절

#) 대용량 table drop table hr.sal_emp purge; => Table dropped. create table hr.sal_emp nologging as select rownum as employee_id, last_name, first_name, hire_date, job_id, salary, manager_id, department_id from employees e, (select level as id from dual connect by level Table created. select * from hr.sal_emp where salary between 5000 and 8000; => 125000 rows selected. #) 통계 수집 exec dbms_stats.gath..

Maria DB 설치 과정

Maria DB란? 오픈소스의 관계형 데이터베이스 관리 시스템(RDBMS) 이다. 1. Maria DB 다운로드 1) 데이터베이스 버전을 10.6.12 로 선책한 후 다운로드 한다. (10.6 을 초과하는 버전은 1년 동안만 유지되는 단기 릴리스라고 한다.) https://mariadb.org/download/?t=mariadb&o=true&p=mariadb&r=10.6.12&os=windows&cpu=x86_64&pkg=msi Download MariaDB Server - MariaDB.org REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server" mariadb.org 2. MariaDB 설치(Instal..

Data Base/Maria DB 2024.02.26

PARTITION 옵션_나누기, 추가, 수정, 삭제, 통계 수집

# partition 나누기 #) partition p3 values less than(25000)을 나누기 alter table sal_emp split partition p3 at(20000) into (partition p3, partition p4); => Table altered. #) 딕셔너리 확인 select partition_name, high_value, tablespace_name, num_rows, blocks, avg_row_len from user_tab_partitions where table_name = 'SAL_EMP'; PARTITION_NAME HIGH_VALUE TABLESPACE NUM_ROWS BLOCKS AVG_ROW_LEN --------------- ------..

Range partition, Hash partition, List partition, Composite partition

■ Range partition 1. 개요 - Oracle 8 버전부터 제공되는 파티션 방법 중 하나. - 데이터의 범위에 따라 파티션을 나누는 방식. - 이력성 데이터 조회에 특히 유리. 2. 주요 특징 1) 8버전 이후 도입: Range 파티션은 Oracle 8 버전부터 처음 도입. 2) 다양한 파티션 키: 여러 컬럼을 파티션 키로 지정 가능하며 최대 16개의 컬럼을 활용 3) maxvalue 파티션: - Range 파티션에서는 범위를 벗어나는 데이터는 maxvalue 파티션에 저장 - 범위가 정의되지 않은 데이터를 수용하는 역할 3. 예시 - 날짜 기준으로 범위를 나누는 경우, 각 날짜 범위에 해당하는 파티션을 생성. - 예시) 연도별로 파티션을 나누어 데이터를 저장하는 경우 등. 4. 활용- 주로..

PARTITION, 수동 파티셔닝(manual partitioning)

■ PARTITION 1. 정의 - 테이블 또는 인덱스를 파티션 단위로 나누어서 저장하는 기술. - 파티션 키에 따라 물리적으로 별도의 세그먼트에 데이터가 저장됨. - 보관 및 관리, 성능 향상 등을 목적으로 사용됨. 2. 특징 및 장점 1) 보관 관리 - 파티셔닝을 통해 테이블을 파티션 단위로 나누면 보관주기가 지난 데이터를 별도로 백업하고 삭제하는 일이 용이해짐. 2) 성능 향상 - 대용량 테이블에서 인덱스를 이용한 데이터 검색이 부담스러울 때, 파티션을 사용하면 파티션 단위로 부분 스캔이 가능해져 성능이 향상될 수 있음. - Full Table Scan이 필요할 때도 일부 파티션만 스캔하여 전체 테이블을 효과적으로 읽을 수 있음. (파티션 가지치기) 3. 파티션 가지치기 (Partition Prun..

통계 수집

#1) 테이블 통계 analyze table employees compute statistics for table; #2) 컬럼 통계 (단, 함부러 수행 하지 않는다.) analyze table employees compute statistics for all columns size 254; analyze table employees compute statistics for columns job_id size 20, department_id size 10; #3) 인덱스 통계 analyze index emp_emp_id_pk compute statistics; #) 통계 수집 -> 라이브러리 캐시 -> 실행계획(hard parsing) 생성-> latch 잡기 -> 겹합 발생 -> 대기발생 #1) 개별_..

join 조건 pushdown, BLOOM FILTER, 조건절 pushdown

■ join 조건 pushdown 1. 정의 - Join 조건 Pushdown은 뷰(View) 쿼리의 조인 조건절을 뷰 쿼리 블록 안으로 내리는 기술을 말합니다. 이는 드라이빙 테이블(Driving Table)에서 읽은 조인 컬럼 값들을 내부(inner) 쪽 뷰 쿼리 블록에서 참조할 수 있도록 하는 것이다. 2. 동작 방식 - 뷰 쿼리에 있는 조인 조건절이 뷰가 아닌 실제 테이블에 조인되도록 변경된다. - 이렇게 변경된 조인 조건절은 드라이빙 테이블의 조인 컬럼 값을 뷰 내부 블록에서 참조할 수 있도록 한다. - 조인 조건 Pushdown은 뷰를 사용하는 쿼리의 성능을 최적화하기 위한 방법 중 하나이다. 3. 특징 1) 성능 향상: Join 조건 Pushdown을 통해 뷰의 조인이 더 효율적으로 처리될 ..

SEMI JOIN, ANTI JOIN

■ SEMI JOIN 1. 정의 - 서브쿼리를 사용하여 조인을 수행하는 방법 중 하나이다. - 메인 쿼리(선행 테이블)의 각 행이 서브쿼리(후행 테이블)와 일치하는지 확인하고, 조건에 맞으면 해당 행을 결과에 추가한다. 서브 쿼리의 모든 일치 행을 찾지 않고, 한 번의 일치만 확인하면 되기 때문에 효율적이다. 2. 동작 방식 - 메인 쿼리의 각 행에 대해 서브쿼리를 실행하여 일치 여부를 확인한다. - 조인 조건에 맞으면 해당 행을 결과에 추가하고, 추가된 행은 더 이상 검색하지 않는다. - 메인 쿼리의 모든 행에 대해 이러한 작업을 반복한다. 3. 특징 1) 일치 여부 확인: 메인 쿼리의 각 행에 대해 서브쿼리의 일치 여부를 확인 2) 조인 종류: 주로 INNER JOIN과 유사한 방식으로 작동하며, O..

Query Transformation, 서브쿼리 처리 방식(in, exists)

■ Query Transformation(=: 쿼리 변환) - optimizer(실행계획을 생성)가 실행계획을 생성하기 전에 사용자가 작성한 SQL문 결과를 동일하나 비용이(cost 값) 더 적게 발생한 것 같으면 쿼리를 변경한다. (in보다는 exists) ■ 서브쿼리 처리 방식(in, exists) 1. filter 방식 메인 쿼리에서 읽히는 row마다 서브쿼리를 반복수행 하면서 조건에 맞는 데이터를 찾는 방식. select /*+ gather_plan_statistics */ * from employees where department_id in (select /*+ no_unnest */ department_id from departments); #) 실행 계획 확인 select * from ta..

728x90
반응형
LIST