database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41856 게시물 읽기
No. 41856
조인시 실행계획에서 풀스캔
작성자
라라라(fkfkfk)
작성일
2021-07-02 12:14ⓒ
2021-07-02 12:23ⓜ
조회수
2,572

 

오라클 쿼리시 풀스캔현상 문의


코드테이블을 조인하면 풀스캔으로 실행계획이 나오고 

해당 테이블을 스칼라 서브쿼리 형태로 사용하면 범위스캔이 됩니다.


왜 그런건가요?


이미지가 등록이 안되서 링크로 했습니다. 이상한 url아닙니다. ㅠ


미리 감사드려요


코드테이블 데이터건수는 대략 6천건 정도 됩니다.



그림1 -> 이미지가 눌러야 보이네요 ㅠ



그림2 -> 이미지가 눌러야 보이네요 ㅠ


 

이 글에 대한 댓글이 총 1건 있습니다.

1) 데이터 건수가 별로 없어서 HASH JOIN 으로 풀린거고요 

옵티마이져에서는 풀스캔이 낫다고 판단한겁니다. 

통계정보를 안돌리셨으면 돌려보시구요. 

그래도 풀스캔이라면 옵티마이져 판단이라 생각하면 됩니다. 

NL 로 유도하려면, 힌트쓰면 됩니다. /*+ ordered use_nl(A B) */ 


2) 스칼라 서브쿼리의 경우, 테이블 A 의 데이터를 먼저 처리한 후 그 결과를 B 테이블의 매칭 데이터와 건별로 처리되면서 일종의 상수처리화가 된 겁니다. 그래서 인덱스를 읽은 거라고 보면 됩니다. 

데이터가 많은경우 rownum =1 을 안한다면, 상당한 비용이 있을 수 있습니다. 


많은 경우, 조인으로 처리가 가능하다면, 스칼라 서브쿼리 보다는 조인으로 처리하는게 낫습니다. 




 

lucky님이 2021-07-02 16:57에 작성한 댓글입니다.
이 댓글은 2021-07-02 22:40에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41859접속 모듈 OraPgm
궁금이
2021-07-23
2012
41858최초검사일 기준으로 표시되는 유효기간 수정 방법 문의 [2]
노진규
2021-07-07
2457
41857level-1 계산하여 데이터 조회하기 [3]
차상환
2021-07-06
2402
41856조인시 실행계획에서 풀스캔 [1]
라라라
2021-07-02
2572
41853풀스캔 질문 드립니다 [2]
궁금이
2021-05-27
2718
41852오라클 19c(윈도우즈용 x64) 설치 에러!!!
신승익
2021-05-24
2750
41851전체 테이블에서 특정 데이터 검색 [1]
노진규
2021-05-18
8232
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.053초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다