"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 내부 조인 vs. Oracle의 조항 : 실제 성능 차이는 무엇입니까?

내부 조인 vs. Oracle의 조항 : 실제 성능 차이는 무엇입니까?

2025-02-11에 게시되었습니다
검색:607

Inner Join vs. WHERE Clause in Oracle: What's the Real Performance Difference?

내부 내부에 Oracle에 가입 ​​

]

Oracle 데이터베이스에서 네트워크 (내부 조인)를 사용하여 두 테이블을 결합하는 것의 차이와 Where 절은 일반적인 문제입니다. 특정 상황에서는 둘 사이에 약간의 차이가있을 수 있지만 전반적인 성능 차이는 종종 무시할 수 있습니다.

다음 예 :

Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID
의 내부 조인

게다가

Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID

두 쿼리 모두 동일한 작업을 수행합니다. ID 열의 평등을 기반으로 표 2의 행과 함께 표 1의 컨텍스트 행을 수행합니다. 이것을 더 잘 이해하려면 두 개의 샘플 테이블을 만들어 봅시다 :

CREATE TABLE table1 (
  id INT,
  name VARCHAR(20)
);

CREATE TABLE table2 (
  id INT,
  name VARCHAR(20)
);

연결을 사용하여 쿼리 실행 실행 실행 :

-- 使用内连接
EXPLAIN PLAN FOR
SELECT * FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... 다음 출력을 얻으십시오 :

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2

마찬가지로 Where 절을 사용하여 쿼리의 실행 계획 :

-- 使用 WHERE 子句
EXPLAIN PLAN FOR
SELECT * FROM table1 t1, table2 t2
WHERE t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

... 다음 출력을 반환합니다 :

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2

두 쿼리 모두 해시 연결을 사용하여 연결 작업을 수행하며 실행 계획에는 큰 차이가 없음을 알 수 있습니다.

따라서 Oracle의 조인 내 또는 WHERE 절을 사용하기로 선택하는 것은 주로 개인 선호도 또는 데이터베이스 스키마 또는 사용 된 쿼리의 특정 요구에 따라 다릅니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3