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 38956 게시물 읽기
No. 38956
쿼리 튜닝좀 부탁드립니다.
작성자
박주영(vf19)
작성일
2011-10-12 14:59ⓒ
2011-10-12 15:29ⓜ
조회수
4,714

       SELECT  M.경로내역_Source,

              M.경로내역_Value,
              SUM(TE.탑승객수) 통행량,
              AVG(TE.통행시간_초) 통행시간,       
              AVG(TE.통행거리) 통행거리,
              ROWNUM 경로순번
      FROM
      (
      SELECT  
              WM_CONCAT(TE.노선ID || TE.승차노선정류장ID || TE.하차노선정류장ID) OVER (PARTITION BY TE.통행일자, TE.통행번호 ORDER BY TE.노선ID) 경로내역_Source,                                          
              WM_CONCAT(TE.승하차정류장ID || chr(13) || chr(10)) OVER (PARTITION BY TE.통행일자, TE.통행번호 ORDER BY TE.노선ID) 경로내역_Value              
        FROM 연계통행내역 ST,
             프로젝트노선정류장 SS,
             프로젝트노선정류장 ES,
             개별통행내역 TE
        WHERE ST.승차노선정류장ID = SS.원노선정류장ID
          AND ST.하차노선정류장ID = ES.원노선정류장ID
          AND ST.통행번호 = TE.통행번호
          AND ST.통행일자 = TE.통행일자
          AND SS.프로젝트ID = 'P20111004001'
          AND ES.프로젝트ID = 'P20111004001'
        ) M, 
         연계통행내역 ST,
         프로젝트노선정류장 SS,
         프로젝트노선정류장 ES,
         개별통행내역 TE
     WHERE ST.승차노선정류장ID = SS.원노선정류장ID
       AND ST.하차노선정류장ID = ES.원노선정류장ID
       AND ST.통행번호 = TE.통행번호
       AND ST.통행일자 = TE.통행일자
       AND SS.프로젝트ID = 'P20111004001'
       AND ES.프로젝트ID = 'P20111004001'   
  GROUP BY M.경로내역_Source,
           M.경로내역_Value,
           ROWNUM
밑에 질문 쿼리를 이렇게 변경해서 경로내역_SOURCE 등에 대해서 GROUP BY 문을
하는 쿼리문을 만들었는데, 실행시키니 시간이 너무 오래걸려서 결과값이 나오지 않습니다.
어떻게 바꿔야 할지 조언좀 부탁드립니다.
        
이 글에 대한 댓글이 총 1건 있습니다.

 자문자답이네요.

      SELECT  M.경로내역_Source,
              M.경로내역_Value,
              SUM(M.탑승객수) 통행량,
              AVG(M.통행시간_초) 통행시간,       
              AVG(M.통행거리) 통행거리,
              ROWNUM 경로순번
      FROM
      (
      SELECT  TE.탑승객수,
              TE.통행시간_초,
              TE.통행거리,
              WM_CONCAT(TE.노선ID || TE.승차노선정류장ID || TE.하차노선정류장ID) OVER (PARTITION BY TE.통행일자, TE.통행번호 ORDER BY TE.노선ID) 경로내역_Source,                                          
              WM_CONCAT(TE.승하차정류장ID || chr(13) || chr(10)) OVER (PARTITION BY TE.통행일자, TE.통행번호 ORDER BY TE.노선ID) 경로내역_Value              
        FROM 연계통행내역 ST,
             프로젝트노선정류장 SS,
             프로젝트노선정류장 ES,
             개별통행내역 TE
        WHERE ST.승차노선정류장ID = SS.원노선정류장ID
          AND ST.하차노선정류장ID = ES.원노선정류장ID
          AND ST.통행번호 = TE.통행번호
          AND ST.통행일자 = TE.통행일자
          AND SS.프로젝트ID = 'P20111004001'
          AND ES.프로젝트ID = 'P20111004001'
        ) M         
  GROUP BY M.경로내역_Source,
           M.경로내역_Value,
           ROWNUM
이렇게 바꾸니 나옵니다 ㅇㅅㅇ;;;.. 

박주영(vf19)님이 2011-10-12 15:29에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38959. [2]
김혜선
2011-10-13
6372
38958한 컬럼의 데이터를 행으로 표시 [1]
성석준
2011-10-13
4129
38957[질문]쿼리시 order by 를 어떻게 하나요? [2]
최병련
2011-10-12
4413
38956쿼리 튜닝좀 부탁드립니다. [1]
박주영
2011-10-12
4714
38953ORA-24315 illegal attribute type
이동희
2011-10-12
4700
38952오라클 db문제입니다. 도와주세요. ㅠㅠ [4]
긴급도움요청
2011-10-11
13083
38951로또 쿼리질문 (통계표?) [4]
그렇구나~
2011-10-11
7084
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다