반응형

SQL튜닝 2

[SQL 튜닝] SQL 옵티마이저

선택도와 카디널리티 1. 선택도 : 조건절에 의해 선택되는 레코드 비율 선택도 = 1 / NDV(컬럼 값 종류 개수) 카디널리티 : 전체 레코드 중 조건절에 의해 선택되는 레코드 수 카디널리티 = 총 로우 수 * 선택도 = 총 로우 수 / NDV 옵티마이저는 카디널리티를 구하고, 데이터를 액세스하는데 드는 비용을 계산해서 데이블 액세스 방식, 조인순서, 조인방식 등을 결정 선택도를 제대로 계산하는 것이 중요 통계정보 테이블 통계 인덱스 통계 컬럼 통계 : 테이블 통계 수집할 때 함께 수집. '=' 조건에 대한 선택도는 데이터 분포가 균일하지 않은 컬럼에서는 잘못 산출될 수 있기 때문에 옵티마이저는 일반적인 컬럼통계 외에 히스토그램을 추가로 활용 시스템 통계 : 애플리케이션 및 하드웨어 성능 특성 측정 C..

SQL & DB/SQL 튜닝 2021.06.26

[SQL 튜닝] 인덱스 튜닝(1) - 테이블 액세스 최소화 및 부분범위 처리 활용

테이블 액세스 최소화 ROWID 논리적 주소에 가까움 포인터라고 이야기 하는 사람이 많지만 포인터가 아니다. 지시봉처럼 어딘가를 가리킨다는 의미에서는 포인터가 맞지만, 프로그래밍에서 배우는 포인터와는 전혀 상관 없음 메인메모리DB(MMDB) 잘 츄닝된 OLTP성 데이터베이스 시스템이면 버퍼캐시 히트율 99%이상. -> 디스크를 경유하지 않고 대부분 데이터를 메모리에서 읽는다는 뜻 But 메인메모리 DB만큼 빠르지 않음 메인 메모리DB의 경우 인스턴스를 기동하며 디스크에 저장된 데이터를 버퍼캐시로 로딩하고 이어서 인덱스로 생성한다. 오라클처럼 디스크 상의 주소정보를 갖는게 아니라 메모리상의 주소정보, 즉 포인터를 가지기 때문에 인덱스를 경유해 테이블을 액세스하는 비용이 낮다. I/O 매커니즘 DBA(=데이..

SQL & DB/SQL 튜닝 2021.05.01
반응형