2014-06-17 3 views
1

중첩 루프 인덱스 가입 : 외부 관계 R의 각 튜플 TR에 대한인덱싱 된 중첩 루프 참여가 동등 조인 또는 자연 조인에만 적용되는 이유는 무엇입니까?

일부 자료는 인덱스 중첩 "고 언급 한 튜플 TR과 조인 조건을 만족 S의 튜플을 찾기 위해 인덱스를 사용 동등이 조인 자연 조인과 인덱스의 속성을 내부 조인 관계로 볼 수 있습니다에만 적용에 대한 "가입 -Loop

SELECT * 
FROM tableA as a 
JOIN tableB as b 
ON a.col1 > b.col1; 

한다고 가정 우리가 b.col1에 인덱스를 가지고있다.

왜이 경우에는 인덱싱 된 중첩 루프 조인이 적용되지 않습니까?

+0

무엇을 묻는 중입니까? 인덱싱 된 Nested-Loop Join이란 무엇입니까? 이것이 쿼리 계획과 관련된 것이라면 사용중인 RDBMS를 지정해야합니다. RDBMS 엔진이 쿼리를 실행하는 방법에 대한 SQL 표준은 없습니다. – Frazz

+0

@Frazz 내 질문을 업데이트했습니다. 감사. – camino

+0

당신이 얻지 못하는 것은 당신이 쿼리가 어떻게 실행되는지 결정할 필요가 없다는 것입니다. 인덱스와 다른 것들을 생성 할 수 있지만, 요청한 결과 세트를 얻는 가장 좋은 방법은 RDBMS 엔진입니다. SELECT 문은 원하는 것을 엔진에 알려줍니다. 엔진이 당신에게 그것을주는 방법을 결정합니다. (일부 RDBMS에서는 계획을 제안 할 수 있지만 다른 문제입니다) – Frazz

답변

1

데이터베이스 시스템 개념 (c) Silberschatz, Korth 및 Sudarshan에 대한 슬라이드를 인용하고 있습니다.

우리는 DBMS가 결합을 계산하기를 원합니다. 다양한 방법으로 할 수있는 특별한 경우가 많이 있습니다.

인덱스 중첩 루프 인덱스 경우

가입 : 이들은

해당 이름의 책 호출이 어떤 경우에 작동하는 특정 기술 등 인덱스, 선택 조건이 있는지 여부를 포함 할 수 있습니다 내부 루프의 조인 특성 및 조인에서 사용할 수 있음 은 동등 조인 또는 자연 조인입니다.

쿼리가 조건을 충족하지 않기 때문에 대답이 달라집니다. 동등 조인 (예 : ON 또는 WHERE a.col1 = b.col1) 또는 자연 조인 (USING (col1) 또는 NATURAL JOIN)이 아닙니다.

왜 이러한 조건을 충족시키지 못하면 해당 기술을 사용하지 않는다는 의미로 작동하지 않으며 다른 기술이 더 우수하기 때문일 수 있습니다. , 튜플 TR

그것이 불평등의 경우와 조인 조건을 만족의에서 튜플을 찾기 위해 인덱스를 사용, 외부 관계 R의 각 튜플 그럴 경우

: 당신은 기술을 주었다 당신은 색인을 "들여다 보지"못합니다. 당신은 을 통해 색인을 통해 검색합니다. 이 방법이 아닙니다.