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
운영게시판
최근게시물
CUBRID Q&A 474 게시물 읽기
No. 474
Q.처리속도
작성자
큐브리드맨
작성일
2007-08-16 13:03
조회수
3,390

감사합니다. 추천해주신 경로로들어가서 해본결과

recordcount해결하엿습니다. 기쁘네요 ㅋ

 

한가지더 질문이있는데요.

 

아까 2번질문에서 \'왜 mssql보다 cubrid가 느린가.\" 에 대해서

생각해보았는데. 이런부분에서도 속도에 영향을주나 해서 질문드립니다.

 

현재 asp로 코딩한 로직안에는 11개의 for문이있습니다

2중 for문도 여럿잇구요. 그 for문안에 쿼리문이 들어가서

여러번 쿼리문을 실행하기에 느려지는것으로 알고잇습니다.

 

제가 mssql쿼리문을 cubrid쿼리문으로 바꾼 로직을 보여드릴께요

 

첫번째 쿼리문이 mssql쿼리문입니다

SQL = \"SELECT NumberID, ChasuNumber,UsingTime,StillBirth, ReBurial, LiveBurial FROM TCODE_\" & g_sGroupName & \"_BurnNumber  WHERE ReBurial = 1 AND UsingStatus = 1 AND Status = 1\"

 

두번째 쿼리문이 cubrid쿼리문입니다

SQL=\"SELECT A.burn_SEQ AS NumberID,A.CHASU_SEQ AS ChasuNumber,B.strtime AS USINGTIME1 ,B.endtime AS USINGTIME2 ,A.STILLBIRTH,A.REBURIAL,A.LIVEBURIAL,B.grp_gubun FROM TCODE_\" & g_sGroupName & \"_BurnNumber as A,TCODE_\" & g_sGroupName & \"_CHASU AS B  WHERE        A.ReBurial = \'1\' AND A.USINGSTATUS = \'1\' AND B.STATUS=\'1\'and  B.grp_gubun= \'\"& b_grp &\"\'\"

 

문제는 쿼리문을 통해서 값을가져오는 변수를 변하지 않고 최대한 쿼리문만 바꿔서

처리하려고 햇었습니다.

2개의 테이블에서 값을가져오는건 똑같지만 두번째 쿼리는

A.burn_SEQ AS NumberID 여기서처럼, 직접 A.burn_SEQ값을 가져오는것이 아닌

AS를 통해서  NumberID에 값을 넣게 되었있습니다.

원래는 A.burn_SEQ를 통해서 바로 값을 넣어야하지만, 로직이 너무 길고 시간이 오래걸려서

이렇게 쿼리를 던졋는데요... 이렇게 값을 AS를 통해서 넣게 되면 처리시간에 따른 처리가

오래 걸리나요?  추가로 이쿼리문은 for문안에 for문에서 돌고있습니다.

한번 로딩에 이쿼리문만 20번을 수행하게됩니다.

 

이렇게해서 처리가 오래걸리면, 다시 쿼리를 짜려구요.

답변 부탁드립니다

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

mssql로 처리하는 구문은 단순 SQL입니다. 즉 조인이 없는 테이블 하나에서 처리를 하고 있네요.

그러나 cubrid로 변환한 질의는 두개의 테이블을 조인하는 형태로 질의를 하고 있으며 두개의 테이블이 전혀 키로 연결되지 않은 조건을 가지고 있습니다. 즉 A.id = B.id 이런 형태로 인덱스로 연결된 조인 조건이 들어 갈 수 있게 수정을 해 주시면 더 빠른 결과를 얻으실 수 있습니다.

 

>감사합니다. 추천해주신 경로로들어가서 해본결과

>recordcount해결하엿습니다. 기쁘네요 ㅋ

>

>한가지더 질문이있는데요.

>

>아까 2번질문에서 \\\'왜 mssql보다 cubrid가 느린가.\\\" 에 대해서

>생각해보았는데. 이런부분에서도 속도에 영향을주나 해서 질문드립니다.

>

>현재 asp로 코딩한 로직안에는 11개의 for문이있습니다

>2중 for문도 여럿잇구요. 그 for문안에 쿼리문이 들어가서

>여러번 쿼리문을 실행하기에 느려지는것으로 알고잇습니다.

>

>제가 mssql쿼리문을 cubrid쿼리문으로 바꾼 로직을 보여드릴께요

>

>첫번째 쿼리문이 mssql쿼리문입니다

>SQL = \\\"SELECT NumberID, ChasuNumber,UsingTime,StillBirth, ReBurial, LiveBurial FROM TCODE_\\\" & g_sGroupName & \\\"_BurnNumber  WHERE ReBurial = 1 AND UsingStatus = 1 AND Status = 1\\\"

>

>두번째 쿼리문이 cubrid쿼리문입니다

>SQL=\\\"SELECT A.burn_SEQ AS NumberID,A.CHASU_SEQ AS ChasuNumber,B.strtime AS USINGTIME1 ,B.endtime AS USINGTIME2 ,A.STILLBIRTH,A.REBURIAL,A.LIVEBURIAL,B.grp_gubun FROM TCODE_\\\" & g_sGroupName & \\\"_BurnNumber as A,TCODE_\\\" & g_sGroupName & \\\"_CHASU AS B  WHERE        A.ReBurial = \\\'1\\\' AND A.USINGSTATUS = \\\'1\\\' AND B.STATUS=\\\'1\\\'and  B.grp_gubun= \\\'\\\"& b_grp &\\\"\\\'\\\"

>

>문제는 쿼리문을 통해서 값을가져오는 변수를 변하지 않고 최대한 쿼리문만 바꿔서

>처리하려고 햇었습니다.

>2개의 테이블에서 값을가져오는건 똑같지만 두번째 쿼리는

> A.burn_SEQ AS NumberID 여기서처럼, 직접 A.burn_SEQ값을 가져오는것이 아닌

>AS를 통해서  NumberID에 값을 넣게 되었있습니다.

>원래는 A.burn_SEQ를 통해서 바로 값을 넣어야하지만, 로직이 너무 길고 시간이 오래걸려서

>이렇게 쿼리를 던졋는데요... 이렇게 값을 AS를 통해서 넣게 되면 처리시간에 따른 처리가

>오래 걸리나요?  추가로 이쿼리문은 for문안에 for문에서 돌고있습니다.

>한번 로딩에 이쿼리문만 20번을 수행하게됩니다.

>

>이렇게해서 처리가 오래걸리면, 다시 쿼리를 짜려구요.

>답변 부탁드립니다

 

박근택님이 2007-08-16 13:23에 작성한 댓글입니다. Edit

안녕하세요.

 

alias a와 b로 선언한 테이블의 인덱스가 있는지요?

인덱스를 타지 않아 질의 처리속도가 나오지 않는 것 같습니다.

혹은, 데이터량이 많아 버퍼캐싱이 되지 않을 수도 있습니다.

DB의 환경변수 num_data_buffer 값을 확인 해 주세요.

 

 

>감사합니다. 추천해주신 경로로들어가서 해본결과

>recordcount해결하엿습니다. 기쁘네요 ㅋ

>

>한가지더 질문이있는데요.

>

>아까 2번질문에서 \\\'왜 mssql보다 cubrid가 느린가.\\\" 에 대해서

>생각해보았는데. 이런부분에서도 속도에 영향을주나 해서 질문드립니다.

>

>현재 asp로 코딩한 로직안에는 11개의 for문이있습니다

>2중 for문도 여럿잇구요. 그 for문안에 쿼리문이 들어가서

>여러번 쿼리문을 실행하기에 느려지는것으로 알고잇습니다.

>

>제가 mssql쿼리문을 cubrid쿼리문으로 바꾼 로직을 보여드릴께요

>

>첫번째 쿼리문이 mssql쿼리문입니다

>SQL = \\\"SELECT NumberID, ChasuNumber,UsingTime,StillBirth, ReBurial, LiveBurial FROM TCODE_\\\" & g_sGroupName & \\\"_BurnNumber  WHERE ReBurial = 1 AND UsingStatus = 1 AND Status = 1\\\"

>

>두번째 쿼리문이 cubrid쿼리문입니다

>SQL=\\\"SELECT A.burn_SEQ AS NumberID,A.CHASU_SEQ AS ChasuNumber,B.strtime AS USINGTIME1 ,B.endtime AS USINGTIME2 ,A.STILLBIRTH,A.REBURIAL,A.LIVEBURIAL,B.grp_gubun FROM TCODE_\\\" & g_sGroupName & \\\"_BurnNumber as A,TCODE_\\\" & g_sGroupName & \\\"_CHASU AS B  WHERE        A.ReBurial = \\\'1\\\' AND A.USINGSTATUS = \\\'1\\\' AND B.STATUS=\\\'1\\\'and  B.grp_gubun= \\\'\\\"& b_grp &\\\"\\\'\\\"

>

>문제는 쿼리문을 통해서 값을가져오는 변수를 변하지 않고 최대한 쿼리문만 바꿔서

>처리하려고 햇었습니다.

>2개의 테이블에서 값을가져오는건 똑같지만 두번째 쿼리는

> A.burn_SEQ AS NumberID 여기서처럼, 직접 A.burn_SEQ값을 가져오는것이 아닌

>AS를 통해서  NumberID에 값을 넣게 되었있습니다.

>원래는 A.burn_SEQ를 통해서 바로 값을 넣어야하지만, 로직이 너무 길고 시간이 오래걸려서

>이렇게 쿼리를 던졋는데요... 이렇게 값을 AS를 통해서 넣게 되면 처리시간에 따른 처리가

>오래 걸리나요?  추가로 이쿼리문은 for문안에 for문에서 돌고있습니다.

>한번 로딩에 이쿼리문만 20번을 수행하게됩니다.

>

>이렇게해서 처리가 오래걸리면, 다시 쿼리를 짜려구요.

>답변 부탁드립니다

 

허지웅님이 2007-08-16 13:23에 작성한 댓글입니다. Edit

안녕하세요.

도움이 되었다니 다행입니다.

말씀하신 질의에 대하여는 다른 분들의 답변을 참고해 보시면 될 것 같습니다.

문제는 for 문에서 20번을 수행한다고 했는데 그것을 한번으로 줄이는 방법을 찾는 것도 중요합니다. 괜찮으시다면 해당 소스를 올려주시면 가능한 방법을 찾아 드리겠읍니다.

 

>감사합니다. 추천해주신 경로로들어가서 해본결과

>recordcount해결하엿습니다. 기쁘네요 ㅋ

>

>한가지더 질문이있는데요.

>

>아까 2번질문에서 \\\'왜 mssql보다 cubrid가 느린가.\\\" 에 대해서

>생각해보았는데. 이런부분에서도 속도에 영향을주나 해서 질문드립니다.

>

>현재 asp로 코딩한 로직안에는 11개의 for문이있습니다

>2중 for문도 여럿잇구요. 그 for문안에 쿼리문이 들어가서

>여러번 쿼리문을 실행하기에 느려지는것으로 알고잇습니다.

>

>제가 mssql쿼리문을 cubrid쿼리문으로 바꾼 로직을 보여드릴께요

>

>첫번째 쿼리문이 mssql쿼리문입니다

>SQL = \\\"SELECT NumberID, ChasuNumber,UsingTime,StillBirth, ReBurial, LiveBurial FROM TCODE_\\\" & g_sGroupName & \\\"_BurnNumber  WHERE ReBurial = 1 AND UsingStatus = 1 AND Status = 1\\\"

>

>두번째 쿼리문이 cubrid쿼리문입니다

>SQL=\\\"SELECT A.burn_SEQ AS NumberID,A.CHASU_SEQ AS ChasuNumber,B.strtime AS USINGTIME1 ,B.endtime AS USINGTIME2 ,A.STILLBIRTH,A.REBURIAL,A.LIVEBURIAL,B.grp_gubun FROM TCODE_\\\" & g_sGroupName & \\\"_BurnNumber as A,TCODE_\\\" & g_sGroupName & \\\"_CHASU AS B  WHERE        A.ReBurial = \\\'1\\\' AND A.USINGSTATUS = \\\'1\\\' AND B.STATUS=\\\'1\\\'and  B.grp_gubun= \\\'\\\"& b_grp &\\\"\\\'\\\"

>

>문제는 쿼리문을 통해서 값을가져오는 변수를 변하지 않고 최대한 쿼리문만 바꿔서

>처리하려고 햇었습니다.

>2개의 테이블에서 값을가져오는건 똑같지만 두번째 쿼리는

> A.burn_SEQ AS NumberID 여기서처럼, 직접 A.burn_SEQ값을 가져오는것이 아닌

>AS를 통해서  NumberID에 값을 넣게 되었있습니다.

>원래는 A.burn_SEQ를 통해서 바로 값을 넣어야하지만, 로직이 너무 길고 시간이 오래걸려서

>이렇게 쿼리를 던졋는데요... 이렇게 값을 AS를 통해서 넣게 되면 처리시간에 따른 처리가

>오래 걸리나요?  추가로 이쿼리문은 for문안에 for문에서 돌고있습니다.

>한번 로딩에 이쿼리문만 20번을 수행하게됩니다.

>

>이렇게해서 처리가 오래걸리면, 다시 쿼리를 짜려구요.

>답변 부탁드립니다

 

남재우님이 2007-08-16 13:43에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
477Q.itrack 메일관련 질문 [1]
마주앙
2007-08-17
3246
476Q.PHP 업그레이드시 데이타베이스 버젼은 어디까지 지원가능한지 [1]
박광중
2007-08-17
2964
475Q.UniSQL 6.0 에서 Cubrid 7.1 로 Migration? [1]
김재홍
2007-08-16
3243
474Q.처리속도 [3]
큐브리드맨
2007-08-16
3390
473Q.8월 교육에 관해서요~ [1]
최은석
2007-08-16
3037
472Q.안녕하세여~!! [1]
큐브리드맨
2007-08-16
3233
471Q.UniSQL 6.x 에서 Excel 로 데이터 Export 시... [1]
김재홍
2007-08-15
3251
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다