잠깐 복습을 해보자 앞의 일부분은 데이터베이스가 어떤 원리로 데이터를 가져오는지에 대해서 공부했다 특히 쿼리의 성능은 디스크 랜덤 I/O 가 얼마나 적게 발생하냐에 따라서 쿼리 성능의 척도가 된다고 배웠다 그리고 다양한 인덱스의 종류와 실행계획을 비교해 보면서 어떨 때 인덱스가 타고 어떨 때 인덱스가 타지 않는지에 대해서 공부했다 테이블 랜덤 액세스...
SQL_튜닝_16
인덱스 스캔의 종류 우리는 이제까지 여러 실행계획을 보았지만 아마 인덱스와 관련해서는 다음 2개만 보았을 것이다 Index Range Scan , TABLE ACCESS FULL에 대해서 말이다 이번 시간에는 이 둘을 포함해서 다른 것들에 대해서 정리하는 시간을 가질 것이다 예제소스 및 스키마 https://gitlab.com/kimdongy1000...
SQL_튜닝_15
자동 형변환 오라클에서는 자동 형변환이 있습니다 예를 들어서 컬럼이 타입은 varchar(Stirng) 타입이지만 사용자가 숫자를 넣어도 오라클은 알아서 형변활을 하게 됩니다 이를 실행계획 보면 이렇게 보입니다 EXPLAIN PLAN FOR SELECT * FROM Ex5_Student WHERE birthday > 20050605 S...
SQL_튜닝_14
소트연산 생략 지난 시간과 마찬가지로 계속해서 소트 연산의 생략을 보도록 하겠습니다 java 소스예제 https://gitlab.com/kimdongy1000/sqltuningproject 이곳에서 Ex4_custom 를 찾자 아래 .sql 파일도 스키마도 마련해두었습니다 예제는 계속해서 Ex4_Custom 를 사용하겠습니다 간단한 테이블 스키...
SQL_튜닝_13
소트연산 DB에서 소트 연산은 사용자에게 보여줄 데이터 셋을 최종적으로 정렬하는 연산을 말합니다 우리가 흔히 쿼리에서 ORDER BY에 의한 ASC , DESC 가 여기에 해당되고 사용자에게 보여줄 최종 데이터 셋을 정렬하다 보니 자원을 상당히 많이 잡아먹는 요소이기도 합니다 인덱스와 소트연산 인덱스를 설정하면 인덱스 테이블은 기본적으로 정렬이 되어...
SQL_튜닝_12
가장 중요한 인덱스 사용조건 예를 들어서 다음과 같은 인덱스가 있다고 하자 CREATE UNIQUE INDEX ex4_custom_pk_idx ON Ex4_Custom (customApplyDate , customName , customSex , customAge); SELECT * FROM Ex4_Custom WHERE customName =...
SQL_튜닝_11
계속해서 인덱스를 타지 못하는 다음 경우를 보겠습니다 앞에서는 선두 컬럼 자체를 가공한 예제하면 다음은 앞 시간까지 복습을 해보면 인덱스 범위 스캔을 사용하려면 인덱스 선두 컬럼을 where 절에 사용을 해야 하고 반드시 선두 컬럼에 대해서는 컬럼 가공이 있어서는 안되었습니다 이번 시간에는 OR에 대해서 공부를 해볼 것입니다 java 소스예제 ht...
SQL_튜닝_10
계속해서 인덱스를 타지 못하는 다음 경우를 보겠습니다 앞에서는 선두 컬럼 자체를 가공한 예제하면 다음은 where 조건에 따라서 범위 스캔이 되는지 아닌지 알아보겠습니다 예제 테이블은 java 소스예제 이곳에서 Ex2_Student 를 찾자 아래 .sql 파일도 스키마도 마련해두었습니다 https://gitlab.com/kimdongy1000/s...
SQL_튜닝_09
지난 시간에는 스캔 범위에 대해 간략하게 정리를 했다 이번 시간부터는 인덱스를 직접 설정해 보면서 실행계획과 비교하는 예제를 많이 만들어볼 것이다 이때는 거의 대부분 데이터 가공이 필요함으로 java 프로그래밍 예제와 같이 제공될 것이다 인덱스 기본 사용법은 인덱스 Range Scan 하는 방법을 의미한다 인덱스 컬럼은 가공되지 않아야 인덱스를 정상...
SQL_튜닝_08
지난 시간에는 복합 인덱스에 대해서 공부를 했는데 이번 시간에는 인덱스 스캔 범위에 대해서 조금 공부를 먼저 하도록 하겠습니다 먼저 ROW 데이터와 그 ROW 데이터를 바탕으로 만들어진 임의의 B-Tree입니다 구성은 Root 와 Leaf로만 이루어졌습니다 전체 ROW 데이터 B-Tree 해당 데이터가 반드시 해당 B-Tree처럼 만들어지...