Back-end/DB 3

ORACLE DB의 내부 동작 과정

1. 유조 프로세스 SQL문을 입력 2. 서버 프로세스 SQL문 도착 3. 서버 프로세스가 SQL문에 있는지 Library cache에서 찾아봄 4. 실행 된적이 있다면 QEP(실행계획), Parse Tree 이용하여 SQL문 실행 5. 처음 실행시 parsing(구문분석) 시작 6. Data dictionary cache의 데이텅 정의, 통계정보를 이용하여 해당 SQL문이 적절한지 확인 후 QEP(실행계획),Parse-tree 만듬 7. Libary cache에 다음을 대비하여 저장 8. Parse-Tree와 QEP를 이용하여 SQL문 실행, 결과 PGA(Program Global Area) 가져온뒤 사용자프로세스에 반환 * SQL문은 Data Buffer Cache에서 실행되고, Data Buffer..

Back-end/DB 2021.06.13

Index

Index (검색을 위해) 임의의 규칙대로 부여된, 임의의 대상을 가리키는 무언가 ex) 2학년 3반 21번, 서울시 송푸구 신청동 루터회관 05510, List objects ... objects.get(index) IN DATABASE 데이터베이스는 내가 원하는 데이터를 어떻게 찾아오는 걸까? 왜 데이터가 많아질수록 점점 느려질까? 왜 조인만 수행하면 느릴까? 왜 쿼리가 느릴까? Clustered vs Non -Clusterd Clustered Index : 군집화된 인덱스 Cluster : 군집 Clustered : 군집화 *뭐가 군집? 인덱스와 데이터가 군집(정렬되어있다) -> 범위 검색 아주 강력!, 삽입과 정렬비용이 커지면 아주 느리다. 순서대로 한테이블에 하나만 범위 검색 Good -> 공간..

Back-end/DB 2021.05.04