새로쓴 대용량 데이터베이스솔루션 1 (2011년)
Hints for Optimization Approaches and Goals 0 0 83,773

by 구루비스터디 Hint 힌트 FIRST_ROWS ALL_ROWS [2023.10.13]


Hints for Optimization Approaches and Goals

ALL_ROWS

SELECT /*+ ALL_ROWS */ * FROM T1 A, T2 B WHERE A.N4 = B.N4 AND A.N4 = 0;

-------------------------------------------------------------------------------------
| Id  | Operation                    | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |      |  1000K|    26M|    13  (77)| 00:00:01 |
|*  1 |  HASH JOIN                   |      |  1000K|    26M|    13  (77)| 00:00:01 |
|   2 |   TABLE ACCESS BY INDEX ROWID| T1   |  1000 | 14000 |     1   (0)| 00:00:01 |
|*  3 |    INDEX RANGE SCAN          | T1N4 |  1000 |       |     1   (0)| 00:00:01 |
|   4 |   TABLE ACCESS BY INDEX ROWID| T2   |  1000 | 14000 |     1   (0)| 00:00:01 |
|*  5 |    INDEX RANGE SCAN          | T2N4 |  1000 |       |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
       2008  consistent gets
          0  physical reads
          0  redo size
          0  sorts (memory)
          0  sorts (disk)
    1000000  rows processed

-- HASH 조인, 읽은 블록수 작다
-- http://ukja.tistory.com/172
-- http://scidb.tistory.com/entry/NO-Costing-in-CBO


FIRST_ROWS(N)

SELECT /*+ FIRST_ROWS(20) */ * FROM T1 A, T2 B WHERE A.N4 = B.N4 AND A.N4 = 0;

--------------------------------------------------------------------------------------
| Id  | Operation                     | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |      |    29 |   812 |     2   (0)| 00:00:01 |
|   1 |  NESTED LOOPS                 |      |       |       |            |          |
|   2 |   NESTED LOOPS                |      |    29 |   812 |     2   (0)| 00:00:01 |
|   3 |    TABLE ACCESS BY INDEX ROWID| T1   |    20 |   280 |     1   (0)| 00:00:01 |
|*  4 |     INDEX RANGE SCAN          | T1N4 |  1000 |       |     1   (0)| 00:00:01 |
|*  5 |    INDEX RANGE SCAN           | T2N4 |    20 |       |     1   (0)| 00:00:01 |
|   6 |   TABLE ACCESS BY INDEX ROWID | T2   |    20 |   280 |     1   (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
     140341  consistent gets
          0  physical reads
          0  redo size
          0  sorts (memory)
          0  sorts (disk)
    1000000  rows processed

-- NL 조인, 읽은 블록수 크다


"구루비 데이터베이스 스터디모임" 에서 2011년에 "새로쓴 대용량 데이터베이스 솔루션1" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4441

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입