본문 바로가기

조인4

4.4 옵티마이저 힌트 힌트의 사용법 MariaDB에서 옵티마이저 힌트는 종류별로 그 사용 위치가 정해져 있는데, 두가지 방법이 있습니다. 이 두가지 방법모두 잘못 사용할 경우 오류를 발생시키게 됩니다. 오라클 처럼 힌트가 주석의 일부로 해석되는 것이 아니라 SQL의 일부로 해석(설령 힌트가 주석안에 표기되었다 하더라도)되기 때문입니다. 사용법1 SELECT * FROM employees USE INDEX (primary) WHERE emp_no=10001; 사용법2 SELECT * FROM employees /*! USE INDEX (primary) */ WHERE emp_no=10001; 첫번째 예제에서는 별도의 주석 표기 없이 SQL 문장의 일부로 작성하는 방식이며, 두 번째 예제는 MariaDB에서 힌트를 위한 주석 표.. 2021. 6. 14.
다른테이블과 JOIN해서 UPDATE하기 UPDATE [테이블1] set [테이블1.변경할컬럼]= 변경할 값 from [테이블2] [Alias] where [테이블1].[조인컬럼]=[테이블2][조인컬럼] MSSQL은 AUTOCOMMIT이기 때문에 잘 검증 후에 적용하시길 바랍니다 2021. 3. 12.
CH02. 조인 원리와 활용 - 05.Outer 조인 (1)Outer NL 조인 NL 조인은 그 특성상 Outer 조인할 때 방향이 한쪽으로 고정되며, Outer기호(+)가 붙지 않은 테이블이 항상 드라이빙 테이블로 선택됩니다. leading 힌트를 이용해 순서를 바꿔보려고 해도 소용 없습니다. select /*+ leading(e) use_nl(d) */ * from dept d, emp e where e.deptno(+)=d.deptno; select /*+ use_nl(d e) */ * from dept d, emp e where e.deptno(+)=d.deptno; 위아래 쿼리 같은 실행계획이 나옵니다. --------------------------------------------------------------------------- | Id .. 2020. 6. 2.
CH02. 조인 원리와 활용 - 04.조인 순서의중요성 조인 순서에 따라 쿼리 수행 성능이 달라질 수 있습니다. 각 조인에 대해서 살펴보겠습니다. NL조인 NL조인에서는 무엇보다 Random 액세스 발생량에 의해 성능이 좌우되는데, 필터조건이 없는 경우에는 드라이빙테이블(조인시 먼저 ACCESS되는 테이블)은 작은 쪽 집합을 드라이빙하는 것이 유리합니다. 필터 조건이 있는 경우에는 인덱스 구성에 따라 유,불리가 경정되며, 비효율이 없게끔 인덱스를 잘 구성해 주기만 하면 역시 작은 쪽 집합을 드라이빙하는 것이 유리합니다. NL조인에서는 Random액세스 발생량 외에도 Inner 쪽 인덱스 구성 및 조건절 연산자 형태에 따라 성능이 크게 좌우되는데, 인덱스 스캔 효율에 차이가 생기기 때문입니다. 소트머지 조인과 해시 조인 소트머지 조인과 해시조인에서도 순서가 중.. 2020. 6. 2.