WITH (INDEX( <Index_Name>)) : 원하는 인덱스 사용 하도록
SELECT * FROM table WITH(INDEX(<table_name_ix>))
WITH (INDEX(0)) : 풀 스캔 하도록
SELECT * FROM table WITH(INDEX(0))
WITH (NOLOCK) : 읽기 락 없이 테이블 읽게
SELECT * FROM table WITH(NOLOCK)
INNER HASH JOIN / INNER LOOP JOIN : 쿼리로 Join 방식 결정
nested loop/hash merge join 결정
SELECT * FROM table A
INNER HASH JOIN table2 B
ON A.xx= B.xx
SELECT * FROM table A
INNER LOOP JOIN table2 B
ON A.xx= B.xx
{LOOP | MERGE | HASH } JOIN : Join 힌트
전체 쿼리에서 모든 조인 연산이 nested loop join, sort merge join 또는 hash join 의해 수행되도록 지정합니다.
쿼리 힌트에서의 조인 형식은 두 가지 이상을 지정할 수도 있습니다. 'OPTION (loop join , merge join)' 이라고 지정할 수는 있습니다. 이 경우 실제로 적용되는 옵티마이저에 의해 코스트가 싸다고 분석 된 것이 사용됩니다.
만약 조인 힌트와 쿼리 힌트에서 둘 다 조인 형식을 지정한다면 조인 힌트의 것이 우선권을 가진다.
SELECT * FROM table A JOIN table2 B ON A.xx= B.xx
OPTION (MERGE JOIN);
{HASH | ORDER } GROUP : 집계 형식
쿼리의 GROUP BY, DISTINCT 또는 COMPUTE 절에 지정된 집계에서 해시나 정렬을 사용하도록 지정합니다.
SELECT ... FROM table
GROUP BY xx, yy
ORDER BY xx, yy
OPTION (HASH GROUP) ;
OPTION(FORCE ORDER)
from 절에 나열된 순서대로 JOIN 한다.
SELECT * FROM table A, table2 B WHERE A.xx= B.xx
OPTION (FORCE ORDER);
'서버 개발 > SQL 문법' 카테고리의 다른 글
[SQL] LEFT Outer Join, RIGHT Outer Join, FULL Outer Join (0) | 2020.04.19 |
---|