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 105
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4471
1239 cannot communicate with the broker 7 차가워여 2009.09.28 20008
1238 can only be performed by the DBA or a DBA group member 오류.. 1 돌개 2014.04.24 6685
1237 c++ builder 2006 explore 에서 큐브리드 사용법 알려주세요 2 강아지60 2009.05.02 19634
1236 c#과 cubrid2008 연동후 문자열 select 질문. 1 hyperhand 2009.12.21 18158
1235 c# 으로 DB생성하기.... 2 안드레세상 2012.07.20 9556
1234 c# 에서 개발 중인데 쿼리 처리속도가 느리네요(수정) 5 yak341 2012.12.20 22730
1233 c# cubrid -> mssql BLOB type 데이타 전환 1 알고싶다! 2022.05.09 220
1232 c# asp.net HA및 브로커 12 알칸펠 2014.01.07 11923
1231 busy 쿼리 자동 종료 문의 2 우동 2019.12.11 224
1230 broker에 대한 질문입니다. 1 secret 푸르팅팅 2014.02.25 11
1229 broker서버가 시작되지 않습니다.. 2 platanus 2009.03.21 23745
1228 broker가 5개 이상 접속이 되지 않습니다. 2 file 꾸찐 2022.07.06 218
1227 broker 접속 오류 1 단순미학 2009.09.16 11255
1226 broker 설정 시 서버 구동 오류 2 SJLEE 2012.11.17 9041
1225 broker 설정 관련 문의 드립니다. 4 키레이니 2018.08.02 1067
1224 broker 로그에 대해 여쭤봅니다. 1 유겸아빠 2010.12.29 6834
1223 broker 구동이 안되네요 3 히로 2010.10.28 9651
1222 broker status 결과에 질문 다시드립니다... 1 secret 오니오니 2014.08.28 9
1221 broker start fail 1 secret 아코 2015.06.05 6
1220 broker sql 로그 중에 사용자가 작업을 하지 않은 내용은듯한데. 1 특수요원 2015.11.03 4465
Board Pagination Prev 1 ... 134 135 136 137 138 139 140 141 142 143 ... 200 Next
/ 200

Contact Cubrid

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