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 22815 게시물 읽기
No. 22815
인덱스를 통한 비용 계산에서 오차가 나는 이유?
작성자
박영진(lordttugi)
작성일
2005-05-28 16:02
조회수
1,117

처음 질문 올립니다.

 

create table hw04 (sorted int, random int, c varchar2(60));

BEGIN
FOR i IN 1..2550 LOOP
INSERT INTO hw04 (sorted, random, c) values (i, round(dbms_random.value*2550), rpad('X', 6, 'X'));
END LOOP;
END;

 

이러한 명령으로 테이블을 만들었습니다.

보시다시피 sorted는 2550까지 순차적으로 값을 넣구요

random은 2550의 범위의 수 안에서 랜덤하게 값을 넣습니다.

 

그런 다음 두 column에 인덱스를 생성해주고 statistic 분석을 마친 다음

다음 두 종류의 쿼리를 날렸습니다.

 

set autot trace

 

<sorted 컬럼에 대한 쿼리를 날렸을 때와 그 실행 계획>

SELECT sorted, random
FROM hw04
WHERE sorted = MOD(2000312550, 100);

 

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=6)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'HW04' (TABLE) (Cost=2 Ca
rd=1 Bytes=6)

2 1 INDEX (RANGE SCAN) OF 'HW04_IDX_SORTED' (INDEX) (Cost=1
Card=1)

 

<random 컬럼에 대한 쿼리를 날렸을 때와 그 실행 계획>

SELECT sorted, random
FROM hw04
WHERE random = MOD(2000312550, 100);

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=2 Bytes=12)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'HW04' (TABLE) (Cost=3 Ca
rd=2 Bytes=12)

2 1 INDEX (RANGE SCAN) OF 'HW04_IDX_RANDOM' (INDEX) (Cost=1
Card=2)

 

sorted 컬럼의 경우 그 비용이 leaf(1)+blocks(1)=2인 것은 이해가 되는데

random 컬럼에서 왜 오차 1이 발생하였는지 모르겠군요.

아시는 분은 설명 부탁드립니다.

 

[Top]
No.
제목
작성자
작성일
조회
22818질문이 참 많은데요~~
거나
2005-05-30
1575
22817급합니다..좀봐주세요..검색인데요~ [1]
오라
2005-05-29
1274
22816고수님들 한번만 봐주세요~ [2]
무림지존
2005-05-28
2658
22815인덱스를 통한 비용 계산에서 오차가 나는 이유?
박영진
2005-05-28
1117
22814oracle 9i character set 변경 [1]
권현석
2005-05-28
2625
22813레드햇 8 에 오라클 9.2.0.4.0 설치시 질문입니다 [1]
강강강
2005-05-28
1158
22812[질문] 쿼리 작성 질문입니다... [1]
마린보이
2005-05-27
791
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다