Background Image

FORUM

조회 수 10105 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부


안녕하세요

문의글을 자주 남기게 됩니다. ^^;


SQL 수행속도 관련하여 문의드리고자 글을 남깁니다.

요약하면 

단일 Query로 수행할 경우 0.005 초의 속도가 나오는데

UNCHK_EVENT_BY_AGENT_N 라는 함수로 만들어서 해당 쿼리를 40번 호출하게 되면 속도가 2초 이상 걸리게 됩니다.

단순 산술적으로도 0.2초 정도 걸려야 정상인거 같은데요.

호출 횟수가 증가할수록 조회속도도 기하급수적으로 증가합니다.

왜 이런 현상이 발생하는지가 질문의 요지입니다.


혹시나 하여 동일한 조건에서 Oracle에서 테스트한 결과

Query를 40번 호출하더라도 0.2초 정도밖에 걸리지 않습니다.


1. 정상적으로 수행되는 단일 Query (정상조회됨 0.5초)

 select case when CHECK_DATE is not null then -99 else TO_NUMBER(ifnull(FLAG, '-1')) END AS t_flag 

 from  

 ( SELECT /*+ USE_DESC_IDX(tbl_nic_info_crdate)*/a.FLAG, a.CHECK_DATE 

from tbl_nic_info a 

where a.AGENT_ID = '00032' 

 and (a.FLAG in ('0', '9') or (a.FLAG = '1' and ( (ifnull(a.BEFORE_IP, ' ') <> ifnull(a.AFTER_IP, ' ')) 

                          or (ifnull(a.BEFORE_MAC, ' ') <> ifnull(a.AFTER_MAC, ' ') )))) 

and a.CHECK_DATE IS NULL 

ORDER BY  a.COLLECT_DATE desc        

 ) x  

 where ROWNUM = 1 ;




2. (1)번을 함수로 만들어서 함수를 호출하는 Query (속도에 문제가 발생)

select

UNCHK_EVENT_BY_AGENT_N(yy.AGENT_ID, 'OS') AS OS_EVT_TYPE

from 

(

SELECT al.agent_id

FROM TBL_AGENT_LISTS al  left outer JOIN  

(SELECT oi.agent_id, oi.AFTER_COMPUTER_NAME          

FROM TBL_OS_INFO oi, TBL_LATEST_GETDATE lg          

WHERE oi.agent_id = lg.AGENT_ID AND lg.LOG_TYPE = '1001'  AND oi.COLLECT_DATE = lg.COLLECT_DATE )

        oi ON al.AGENT_ID = oi.agent_id 

WHERE delete_yn = 'N' AND lower(NVL(al.DEPT_NAME, ' ')) LIKE lower('%%') AND lower(NVL(al.USER_NAME, ' '))

        LIKE lower('%%') AND lower(NVL(al.agent_id, ' ')) LIKE lower('%%')

AND lower(NVL(oi.AFTER_COMPUTER_NAME, ' ')) LIKE lower('%%')AND lower(NVL(al.ipaddress, ' ')) 

        LIKE lower('%%')  

ORDER BY al.USER_NAME

) yy




3. (2)번의 UNCHK_EVENT_BY_AGENT_N 함수를 정의한 Java 파일은 별도 첨부

TBL_AGENT_LISTS 에 데이터 40건이 있어, 해당함수가 40번 호출 됨


  • ?
    손승일 2013.03.27 03:16

    아시다시피 CUBRID는 사용자 정의 함수/프로시져를 java 기반으로 제공하고 있습니다.

    서버 프로세스가 구동되면서 java를 실행하기 위한 jvm이 함께 구동되어 지는데 아무래도 jvm에서 동작하는 관계로 자원을 나눠 사용하게 되어 성능상 이슈가 있습니다.

    가능하시면 query로 처리하시거나 응용프로그램의 함수로 사용하시길 권장 드립니다.


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views51
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4458
    read more
  3. cubrid loaddb 문의

    Date2017.02.17 By나무천사 Views10042
    Read More
  4. connot cennect to a broker...

    Date2013.08.29 By나아가나가 Views10045
    Read More
  5. no 컬럼명을 사용해선 안되나요?

    Date2010.11.03 By코딩셔틀 Views10045
    Read More
  6. DBCP 관련 문제 때문에 질문 드립니다.

    Date2011.04.04 By피아오 Views10049
    Read More
  7. 큐브리드매니저에서 한글은 어떻게?

    Date2010.07.12 By초짜큐브 Views10050
    Read More
  8. 데이터베이스 최적화 기능 관련

    Date2009.05.30 By회오리 Views10055
    Read More
  9. CUBRID 4.0 64bit & SULinux 2.0 64Bit service start 시 manager fail 발생합니다..

    Date2011.07.02 By반짝이 Views10058
    Read More
  10. CUBRID ODBC DB Connection DataSet 오류

    Date2013.01.24 Byabeans Views10059
    Read More
  11. CUBRIDResultSetMetaData 에 관한 질문..

    Date2009.10.06 By눈꽃 Views10061
    Read More
  12. 버전업 될때마다 지우고..

    Date2009.05.27 By엔가 Views10063
    Read More
  13. 백업 된 파일 버전 확인하기

    Date2013.03.05 Bysw엔지니어 Views10068
    Read More
  14. 오라클 -> cubrid 마이그레이션 시....

    Date2013.09.10 Byagkim Views10071
    Read More
  15. 큐브리드를 지원하는 모델링 툴이 있나요??

    Date2009.12.10 By십칠미리 Views10071
    Read More
  16. 엄청난 DB 생성 소요 시간

    Date2010.01.16 By쭈난 Views10071
    Read More
  17. CUBRID unloaddb 와 스케줄러(Crontab)

    Date2012.11.30 Bycubrid 초보 Views10086
    Read More
  18. cubridprovider.dll 배포 질문 드립니다

    Date2011.03.10 By유니콘 Views10090
    Read More
  19. 프로시저 사용시

    Date2009.08.03 By경아 Views10095
    Read More
  20. BLOB에 대한 자바 타입변환 문제..

    Date2013.01.28 Byㅇㅇ Views10099
    Read More
  21. DATABASE 간 상호 table 참조가능한가요

    Date2013.08.28 By관리자 Views10100
    Read More
  22. java function을 이용한 Query 수행속도 문의

    Date2013.03.26 By김상윤 Views10105
    Read More
Board Pagination Prev 1 ... 137 138 139 140 141 142 143 144 145 146 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales