DB (3) 썸네일형 리스트형 [DB] 테이블의 스캔방식 db에서 db오브젝트를 스캔하는 방식에 따라 속도가 차이가 난다는 걸 최근에 알게 되었다. 때문에 정리를 해보고자 한다. 디스크의 접근 방식 1.시퀸셜 액세스 - 물리적으로 인접한 페이지를 순차적으로 읽는 방식이다. - 디스크 헤더의 움직임을 최소하하여 작업시간과 리소스 점유 시간을 줄일 수 있다. 2.랜덤 액세스 - 물리적으로 떨어진 페이지를 임의로 접근하는 방식이다. - 디스크 헤더에 많은 움직임을 요구하기 때문에 접근 시간이 오래걸린다. - 접근 범위를 줄이는 방식으로 튜닝이 필요할 수도 있따. 테이블 스캔방식 1.테이블 풀 스캔 - 인덱스를 거치지 않고 테이블 데이터 처음부터 끝까지 모든것을 스캔하는 방식이다. - where 조건을 기준으로 인덱스가 없을경우 이 스캔방식을 사용한다. - 시퀸셜 액.. SQL 쿼리의 실행 순서 1.일반적인 쿼리의 실행순서 예제로 쿼리를 실행해 본다고 하자 SELECT DISINTCT sample_data FROM sample_main_table a INNER JOIN sample_sub_table b ON a.key_id = b.key_id WHERE sample_condition = 2 GROUP BY sample_data HAVING SUM(sample_data) > 1 ORDER BY sample_data (LIMIT 5) FROM 절이 먼저 실행이 된다. ON으로 조인 조건을 확인한다. JOIN 으로 테이블을 조인한다. WHERE 절을 검사하여 조건을 체크한다. GROUP BY 를 실행하여 조회 칼럼을 그룹화한다. HAVING 으로 그룹화 한 이후에 대한 데이터 조건을 체크한다. SEL.. 데이터 베이스 옵티마이저란? 1.옵티마이저란? SQL을 실행을 할 때 DB는 내부적으로 SQL을 가장 빠르고 효율적이게 처리를 하려고 한다. 때문에 DBMS는 실행계획을 세우고 SQL을 실행시킨다. 실행계획을 짜기 위해 사용하는 것이 옵티마이저이다. 2.실행계획(Execution Plan) 동일한 결과가 나오는 SQL을 작성하더라도 어떻게 실행되냐에 따라 성능이 달라질 수 있다. 옵티마이저는 Data Dictionary에 있는 오브젝트 통계, 시스템 통계등의 정보를 사용해서 예상되는 비용을 평가하여 여러 실행계획을 작성한다. 그 뒤 여러가지 실행계획의 비용을 계산하고 가장 낮은 비용을 가진 실행 계획을 선택하여 SQL을 실행시킨다. 3.쿼리의 처리 흐름 SQL이 작성되고 실행된다. 파서(Parser)는 작성된 SQL의 문법검사와 구.. 이전 1 다음