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 40074 게시물 읽기
No. 40074
select 절 substr 속도 관련
작성자
궁금이
작성일
2013-03-27 10:18
조회수
7,736

where 절이 아닌 select 절에서 특정 문자열을 substr으로 잘라서 사용하고 있습니다.

기본 쿼리는 15초 정도 소요가 됩니다

그런데 substr을 할때마다 6초씩 증가를 합니다.

현재 4개의 정보를 substr으로 잘라서 생성 하는데요 도합 20초 이상이 증가를 합니다.

이게 무슨일인가요? 도통 저의 상식으로는 잘 이해가 안갑니다. ;;

where 절에서라면 index가 깨지니까 그렇다 쳐도 select 절에서 그렇게 된다니 참 당황 스럽습니다.

데이터 건수는 대략 5만건 정도 됩니다..

혹시나 무슨 이유때문인지? 해결책에 대해서도 알려 주시면 감사드리겠습니다.

(__)*

 

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

잘라 쓰는 정보가 혹시 함수 리턴값 아닐런지요?
함수 수행이 4번 반복되어 그런듯 하네요?
-- 원본 쿼리 --
SELECT SUBSTR(fn, 1, 1) v1
     , SUBSTR(fn, 2, 1) v2
     , SUBSTR(fn, 3, 1) v3
     , SUBSTR(fn, 4, 1) v4
  FROM (SELECT function fn FROM t)
;
-- 튜닝 쿼리 --
SELECT SUBSTR(fn, 1, 1) v1
     , SUBSTR(fn, 2, 1) v2
     , SUBSTR(fn, 3, 1) v3
     , SUBSTR(fn, 4, 1) v4
  FROM (SELECT (SELECT function FROM dual) fn FROM t)
;
이부분 외에도 전체적인 쿼리 튜닝이 필요한듯 하네요.
5만건에 15초면 많이 걸리네요.

마농(manon94)님이 2013-03-27 11:40에 작성한 댓글입니다.

답변 주신 마농님 감사합니다.

맞습니다..함수에서 리턴 받은 변수를 substr 해서 사용 합니다..

5만건은 결과값이 5만건 입니다.

대상 건수는 백만건 이상입니다. 배치 프로시져라서...

답변 감사합니다.

궁금이님이 2013-03-27 15:08에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
400772가지 질문..ㅠ [4]
임서희
2013-03-28
6324
400769i export 11g import .. 문제. [2]
이유창
2013-03-28
6818
40075입고,출고,잔고 보여주기 [3]
자바천재
2013-03-28
6322
40074select 절 substr 속도 관련 [2]
궁금이
2013-03-27
7736
40073오라클의 컬럼 alias에 대하여...
김흥수
2013-03-27
5793
40072인덱스에 관하여 [1]
충시기
2013-03-21
5219
40071원격 접속시에 오라클 클라이언트 설치???
최규성
2013-03-21
5471
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다