Background Image

FORUM

조회 수 9151 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
php 솔루션 개발자입니다.
php 에서는 select 는 오토커밋이 되지 않는다고 말씀을 하셨는데...
현재 select 는 모두 오토커밋이 이루어지고 있습니다.

특별히 설정을 변경하거나... 그런 것은 없습니다.
어떤 경우에 select 가 오토커밋이 되는지... 궁금합니다....

테스트 환경은 apm_setup + cubrid2008 입니다.
기본 환경에서 전혀 변경한 것이 없습니다.
현재 select 는 오토커밋이 되고... insert, update, delete 등은 commit 을 주어야 처리 되고 있습니다.

감사합니다.
  • ?
    시난 2009.08.03 23:15

    브로커의 sql 실행로그를 해당 부분만 첨부해주실 있을런지요?

    보통 다음과 같이 로그가 남게 되는데
    남겨주시면 큰 도움이 될 것입니다.

    08/03 14:11:56.142 (0) connect 127.0.0.1
    08/03 14:11:56.142 (0) connect demodb PUBLIC
    08/03 14:11:56.143 (0) isolation level : 3, lock timeout : -1, auto_commit : false
    08/03 14:11:56.143 (0) get_version
    08/03 14:11:56.143 (3) prepare 0 select * from athlete
    08/03 14:11:56.145 (3) prepare srv_h_id 1
    08/03 14:11:56.201 (3) execute srv_h_id 1 select * from athlete
    08/03 14:11:56.202 (3) execute 0 tuple 0 time 0.001
    08/03 14:11:56.218 (0) con_close
    08/03 14:11:56.223 (0) disconnect
    *** 0.081

     

  • ?
    남재우 2009.08.05 18:43

    php는 오토커밋이 없습니다. select 역시 자동커밋되지 않는 것이 맞습니다.
    PHP 는 특성상 페이지가 끝나면 commit 처리하지 않는한 자동으로 롤백처리합니다.
    지금 커밋된다고 하셨는데 어떤 정보를 보고 커밋을 한다고 하셨는지 알려주시면 감사하겠습니다. CUBRID의 기본설정에서는 select 시 레코드에 읽기관련락(S_LOCK)을 잡지는 않습니다. 단지 테이블이 잠재된읽기락(IS_LOCK)이 잡히기만 합니다.
    select 후 PHP 페이지에 sleep 을 한 1분 정도 넣어놓고 해당 페이지를 실행후 cubrid broker status 해보시면 CLIENT_WAIT 로 되어있는 것이 보이실 것입니다. 이것이 바로 트랜잭션이 종료되지 않아 client 로부터 트랜잭션의 종료를 기다리는 상태입니다.

    다음은 db_class 라는 시스템테이블에 select 질의후 commit/rollback 을 하지 않고 단순히 fetch만 완료한 상태입니다.
    아래가 cubrid broker status 화면 일부입니다.
    ----------------------------------------------------
    ID   PID     C PSIZE STATUS        LAST ACCESS TIME
    ----------------------------------------------------
     1 24968    93 10992 CLIENT WAIT 2009/08/05 09:33:39
    아래는 lock 정보를 보여주는 cubrid lockdb 의 결과입니다. 앞서 설명드린것처럼 레코드(Instance 로 표시됨)에는 S_LOCK이 없고, 테이블에만 IS_LOCK이 있는 것을 확인할 수 있습니다.
    Object type: Class = db_class.
    Total mode of holders =   IS_LOCK, Total mode of waiters = NULL_LOCK.

     

  • ?
    메이커스 2009.08.05 20:36
    상세한 답변 감사드립니다.
    커밋없이 단순히 select 만 해도 데이터가 모두 추출 되기에 오토커밋이라고 말씀 드렸습니다.
    커밋없이 select 만 해도 데이터가 fetch 되는 것은 어떤 경우라 봐야하는지요..?
    오라클의 경우에는 잘 기억 나지 않지만.. DB2의 경우에는 오토커밋을 오프하면... select 시에도 전혀 fetch가 되지 않는 것으로 알고 있습니다. 하여간, 답변 주신 내용으로 좀 더 자세히 테스트를 해보도록 하겠습니다. 감사합니다.

    가ㅓㅁ
  • ?
    남재우 2009.08.05 21:20

    php는 오토커밋이 없습니다. select 역시 자동커밋되지 않는 것이 맞습니다.
    PHP 는 특성상 페이지가 끝나면 commit 처리하지 않는한 자동으로 롤백처리합니다.
    지금 커밋된다고 하셨는데 어떤 정보를 보고 커밋을 한다고 하셨는지 알려주시면 감사하겠습니다. CUBRID의 기본설정에서는 select 시 레코드에 읽기관련락(S_LOCK)을 잡지는 않습니다. 단지 테이블이 잠재된읽기락(IS_LOCK)이 잡히기만 합니다.
    select 후 PHP 페이지에 sleep 을 한 1분 정도 넣어놓고 해당 페이지를 실행후 cubrid broker status 해보시면 CLIENT_WAIT 로 되어있는 것이 보이실 것입니다. 이것이 바로 트랜잭션이 종료되지 않아 client 로부터 트랜잭션의 종료를 기다리는 상태입니다.

    다음은 db_class 라는 시스템테이블에 select 질의후 commit/rollback 을 하지 않고 단순히 fetch만 완료한 상태입니다.
    아래가 cubrid broker status 화면 일부입니다.
    ----------------------------------------------------
    ID   PID     C PSIZE STATUS        LAST ACCESS TIME
    ----------------------------------------------------
     1 24968    93 10992 CLIENT WAIT 2009/08/05 09:33:39
    아래는 lock 정보를 보여주는 cubrid lockdb 의 결과입니다. 앞서 설명드린것처럼 레코드(Instance 로 표시됨)에는 S_LOCK이 없고, 테이블에만 IS_LOCK이 있는 것을 확인할 수 있습니다.
    Object type: Class = db_class.
    Total mode of holders =   IS_LOCK, Total mode of waiters = NULL_LOCK.

     

  • ?
    남재우 2009.08.05 21:20

    php는 오토커밋이 없습니다. select 역시 자동커밋되지 않는 것이 맞습니다.
    PHP 는 특성상 페이지가 끝나면 commit 처리하지 않는한 자동으로 롤백처리합니다.
    지금 커밋된다고 하셨는데 어떤 정보를 보고 커밋을 한다고 하셨는지 알려주시면 감사하겠습니다. CUBRID의 기본설정에서는 select 시 레코드에 읽기관련락(S_LOCK)을 잡지는 않습니다. 단지 테이블이 잠재된읽기락(IS_LOCK)이 잡히기만 합니다.
    select 후 PHP 페이지에 sleep 을 한 1분 정도 넣어놓고 해당 페이지를 실행후 cubrid broker status 해보시면 CLIENT_WAIT 로 되어있는 것이 보이실 것입니다. 이것이 바로 트랜잭션이 종료되지 않아 client 로부터 트랜잭션의 종료를 기다리는 상태입니다.

    다음은 db_class 라는 시스템테이블에 select 질의후 commit/rollback 을 하지 않고 단순히 fetch만 완료한 상태입니다.
    아래가 cubrid broker status 화면 일부입니다.
    ----------------------------------------------------
    ID   PID     C PSIZE STATUS        LAST ACCESS TIME
    ----------------------------------------------------
     1 24968    93 10992 CLIENT WAIT 2009/08/05 09:33:39
    아래는 lock 정보를 보여주는 cubrid lockdb 의 결과입니다. 앞서 설명드린것처럼 레코드(Instance 로 표시됨)에는 S_LOCK이 없고, 테이블에만 IS_LOCK이 있는 것을 확인할 수 있습니다.
    Object type: Class = db_class.
    Total mode of holders =   IS_LOCK, Total mode of waiters = NULL_LOCK.

     


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4438
284 테이블 삭제시 오류에 대하여... 2 메이커스 2009.08.01 10623
» 트랜잭션 관련 추가 문의입니다. 5 메이커스 2009.07.31 9151
282 Could not initialize class cubrid.jdbc.jci.UJCIManager 에러.ㅠ.ㅠ 2 박민호 2009.07.31 14030
281 Python 으로 데이터 일괄처리 하는 부분?? 3 천상천비 2009.07.31 10245
280 php 모듈 설치 에러입니다 2 터프키드 2009.07.30 9431
279 자바 프로시저 작성 문의입니다. 2 제발좀 2009.07.30 12313
278 날짜 계산관련 문의드립니다. 2 치푸 2009.07.29 23177
277 DB 페이지 스페이스 늘이는 방법 문의입니다. 1 secret 재홍 2009.07.29 7
276 [초보문의] 질의편집기 접속 오류 6 삽질중 2009.07.29 9742
275 서버컴 접속이 안되요 3 경아 2009.07.28 10308
274 설치 및 삭제의 편의성 증대 요청 1 윤희서 2009.01.20 21699
273 업데이트 보완 문제 해결요청 1 가라 가라~ 2009.01.20 17592
272 CUBRID 7.3 + zeroboard XE 관리자 로그인 에러 1 윤희서 2009.01.17 62130
271 DB / PW 자릿수를 늘려주세요. 3 윤희서 2009.01.16 35846
270 해당 ip에만 접속 권한을 주는 기능은 없나요? 1 얀들 2009.07.27 9083
269 CUBRID Service Tray 실행이 안됩니다. 3 얀들 2009.07.25 10809
268 트랜잭션 관련 문의입니다. 4 메이커스 2009.07.25 9312
267 큐브리드 매니저 대한 에러 문의 4 느티나무 2009.07.25 9500
266 ibatis 시 설정 질문입니다. 3 rogah 2009.07.24 14342
265 connect by 에 관한 질문드리겠습니다. 1 쫑구 2009.07.24 11907
Board Pagination Prev 1 ... 181 182 183 184 185 186 187 188 189 190 ... 200 Next
/ 200

Contact Cubrid

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