Background Image

FORUM

조회 수 9152 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 30
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4456
852 [개선요청] 데이터베이스 복구 문제 개선이 필요할 것 같습니다.. 5 secret 스마트 2011.01.04 49
851 백업 및 복구에 대한 질문 드립니다 3 유니콘 2011.01.04 7478
850 cubrid bigint를 java로 가져오는데 문제가 있네요... 2 반짝이 2011.01.04 22138
849 테이블 정보를 가지고 오는 쿼리를 알고 싶습니다. 1 미스터비니 2011.01.04 9789
848 큐브리드 성능 문의 2 스마트 2011.01.03 9819
847 큐브리드 쿼리문 문의 드립니다. 2 secret 스마트 2011.01.01 12
846 php 5.1.6 연동 문제 3 올닉스 2011.01.01 10228
845 CUBRIDServcie 서비스 시작시 오류 3 통닭 2010.12.30 8632
844 리눅스에서 환경 설정 문의 9 secret 스마트 2010.12.30 11
843 cubrid 2008 r3.0 을 쓰고 있는데요 data table 생성시 대문자로 표시 하는 법 1 Bluecat 2010.12.29 7239
842 [긴급] CMT 오류 문의 드립니다. 7 스마트 2010.12.29 6490
841 broker 로그에 대해 여쭤봅니다. 1 유겸아빠 2010.12.29 6834
840 CMT 관련 문의 드립니다. 2 secret 스마트 2010.12.29 8
839 데이터베이스 추가시 오류 메시지 6 file 종이 2010.12.24 6968
838 큐브리드 호스팅 서비스를 준비중에 있는데요.. 3 큐브리드호스팅 2010.12.23 8033
837 CUBRID 2008 R3.0, R3.1 beta 에서의 PHP 모듈사용에 대한 질문 1 potter 2010.12.23 7159
836 [긴급] odbc utf8 입력이 안됩니다.. 11 스마트 2010.12.23 12406
835 UTF8지원 관련.. 2 스마트 2010.12.21 7750
834 db실행 오류 2 SoMa 2010.12.21 7876
833 큐브리드 매니져 멈춤현상 2 2 하하보이 2010.12.21 7573
Board Pagination Prev 1 ... 153 154 155 156 157 158 159 160 161 162 ... 200 Next
/ 200

Contact Cubrid

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