SQL

    [SQL 튜닝] 옵티마이저(optimizer)

    옵티마이저란? SQL을 가장 빠르고 효율적으로 수행할 최적(최적비용)의 처리 경로를 생성해주는 DBMS 내부의 핵심엔진이다. 개발자가 SQL을 작성하고 실행하면 즉시 실행되는 것이 아니라 옵티마이저에서 해당 쿼리문을 어떻게 실행시킬지 실행계획을 세우고 쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떻게 분포 되어있는지 참조하고 데이터를 기반으로 최적의 실행 계획을 처리해준다. 옵티마이저 종류 옵티마이저는 실행 계획을 세우는 방식에 따라 규칙 기반 옵티마이저와 비용 기반 옵티마이저로 나뉜다. 규칙 기반 옵티마이저 실행 속도가 빠른 수능로 규칙을 먼저 세워두고 우선순위가 앞서는 방법을 채택하는 것이다. 과거에 옵티마이저의 비용 예측하는 능력이 좋지 않아 해당 방식을 사용했었다. 우선순위는 다음과 같다..

    [SQL] UNION과 UNION ALL의 차이

    UNION은 여러개의 sql문을 합쳐 하나의 sql문을 만들어준다. 두 쿼리의 합집합이라고 생각하면 된다. UNION은 두 쿼리의 결과에서 중복되는 값을 삭제해 보여준다. UNION ALL은 두 쿼리의 결과에서 중복되는 값을 모두 보여준다. 중복체크 여부에 따라 속도차이가 나는데 UNION ALL이 더 빠르다.

    [SQL] DELETE / TRUNCATE / DROP 명령어 차이점

    [SQL] DELETE / TRUNCATE / DROP 명령어 차이점

    DELETE : 데이터만 지워지고 쓰고 있던 디스크 상의 공간은 그대로 가지고 있음 TRUNCATE : 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납 - 테이블의 데이터가 모두 삭제되지만 테이블 자체가 지워지는 것은 아님 DROP : 테이블 자체를 삭제하는 명령어 - 테이블 자체가 모두 지워지며 해당 테이블에 생성되어 있던 인덱스도 삭제됨

    [SQL] :: - double colon (범위 결정 연산자)

    범위결정연산자 :: (double colon)은 복합 데이터 형식의 정적 멤버에 대한 액세스를 제공한다. cast/convert함수와 같은 역할을 하고 있다.

    [SQL] cast / convert

    cast convert 는 데이터 타입 변환 함수이다. 데이터형식을 다른 유형으로 데이터를 변환하는데 사용한다. 사용하는 방식만 다르지 하는일은 같다. convert에는 cast에 없는 스타일을 정의할 수 있는 기능이 존재한다. -Float, NUMERIC에서 INTEGER로 변환할 때 cast()함수는 결과를 자른다. cast( ' [변환하고자 하는 데이터] ' as [데이터형식] ) select cast( ceiling(sum(normal_time) / 60.0 ) as int) normal_min select cast(29.7 AS INT) --30 - 날짜 변환에 유용하게 사용 - 부동 소수점 또는 숫자에서 정수로 변환할 때 convert() 함수는 결과를 자른다. 다른 변환일 경우 반올림한다. ..