안녕하세요.
우선 DB내의 테이블이 어떤 레벨의 lock을 쓰는 상태인지를 확인하시려면 아래와 같이 하십시오.
dbaccess -> Query Language ->database 선택 -> New
select tabname, locklevel from systables where tabid >99;
위구문을 실행하시면 어떤 테이블이 어떤 레벨의 lock을 쓰는 지 아실 수가 있습니다.
이때에 R은 row, P는 page를 의미합니다.
따라서, 이 테이블이 사용하는 페이지는 위의 레벨에 적용을 받게 됩니다.
만일 이 변경을 바꾸고자 한다면,
alter table 테이블이름 lock mode(row);
alter table 테이블이름 lock mode(page);
하시면 됩니다.
이때에 한페이지에는 페이지가 수용할 수 있는 여러개의 row들이 들어가 있을텐데요,
row level로 lock을 걸고 작업할 것인지, page level로 lock을 걸고 작업할 것인지를 의미합니다.
따라서 row level보다 page level이 lock을 더 많이 사용하게 될꺼구요,
하지만 좀더 많은 사용자가 data를 공유할 수 있게 되겠지요.
이것을 resource와 concurrency간의 trade off라 합니다.
어떤 점에 중점을 둘 것인가에 따라, 선택하십시오.
동시성인지, resource인지..
그럼 수고하세요.
>>문병진 님께서 쓰시길<<
:: 안녕 하세요.
::
:: 인포믹스로 조그마한 관리 프로그램을 작성하고 있는데,
:: 얼마전에 주변에서 인포믹스에 락이 걸려서 DB를 다시 내렸다가 오렸다고 합니다.
:: 아직 저에게는 쳐해 있지 않지만 알고 있으면 나중에 요긴할 것 같아
:: 이렇게 미리 질문을 드립니다.
::
:: 락이 걸리기 전에 먼저 디비의 로깅모드와 페이지 단위인지, 아니면 셀단위(??)
:: 등의 검색을 지정한다고 하는데.....
::
:: 각각의 상황에 맞는 형태의 락의 유형에 대해서 알려주셨으면..... ^^;
:: 아니면 참고 할 만한 사이트를 알려주시면 감사 드리겠습니다.
:: 그럼.
::
|