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 1274 게시물 읽기
No. 1274
Q.multiset에 대해서 질문 드립니다.
작성자
강민철
작성일
2008-10-30 17:06
조회수
5,170

multiset 을 쓰는 db테이블이 있는데.

 

두개의 프로세서에서.

 

하나의 프로세서는

db_get_collection 으로 값을 가지고 와서 db_set_size로 사이즈만큼 for문을 돌면서 정보를 가지고 와서 비교후 지우거나 값을 가지고 오는 연산을 하고,

 

다른 하나의 프로세서는

해당 set의 인자 하나를 지우는 연산을 처리할때.

 

두 프로세서의 작업이 동시에 이루어진다면

두개의 프로세서간 set의 데이터 또는 set을 통한 다른 테이블의 데이터는

정보를 읽어오는 측에서 유요하게 읽어올수 있는지 궁금해서 질문 드립니다.

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

안녕하세요.

데이터베이스에서는 기본적으로 테이블, 레코드에 대한 locking 을 지원하고 있읍니다.

작업을 하는 시점에 트랜잭션을 종료하지 않고 작업을 진행한다면 해당 데이터에 대한 보장을 받을 수 있읍니다. 즉 다른 사용자가 해당 데이터에 접근하거나 수정하는 것을 막을수가 있읍니다.

현재 기본적인 락 레벨은 쓰기에 대한 락만 설정하도록 되어있으므로, 작업중 읽는 것을 막기 위해서는 락 레벨을 하나 올려야 합니다.(REP_CLASS_COMMITTED_INSTANCE)

또 한가지는 읽어와서 작업을 하는 것이므로 다른 사용자가 읽어 가는 것을 막아야 하는데 그러기 위해서는 해당 레코드에 대하여 write lock 을 먼저 잡은 다음 읽어와서 작업을 해야 다른 사용자가 읽어가는 것을 막을수가 있읍니다. write lock 을 잡기 위해서는 db_lock_write() 함수를 이용하면 됩니다.

하지만 지금 작업을 보면 set 에 대한 연산이 시간을 소요할 수 있고 그 만큼 lock time 이 길어져 전반적인 성능에 영향을 줄 수 있으므로 보다 안전하고 성능이 보장되는 방법을 찾아 보시는 것이 좋겠읍니다.

 

>multiset 을 쓰는 db테이블이 있는데.

>

>두개의 프로세서에서.

>

>하나의 프로세서는

>db_get_collection 으로 값을 가지고 와서 db_set_size로 사이즈만큼 for문을 돌면서 정보를 가지고 와서 비교후 지우거나 값을 가지고 오는 연산을 하고,

>

>다른 하나의 프로세서는

>해당 set의 인자 하나를 지우는 연산을 처리할때.

>

>두 프로세서의 작업이 동시에 이루어진다면

>두개의 프로세서간 set의 데이터 또는 set을 통한 다른 테이블의 데이터는

>정보를 읽어오는 측에서 유요하게 읽어올수 있는지 궁금해서 질문 드립니다.

 

남재우님이 2008-10-30 17:41에 작성한 댓글입니다. Edit

CUBRID는 commit/rollback/savepoint/lock/isolation level의한 트랜잭션의 고립 수준 모두 지원하고 있습니다.

여러개의 프로세서의 작업이 동시에 진행해도 commit 주기, lock level, 트랜잭션 고립수준에 따라 데이터의 무결성을 보장합니다. 자세한 내용은 큐브리드 메뉴얼을 참조 하세요.!

 

>multiset 을 쓰는 db테이블이 있는데.

>

>두개의 프로세서에서.

>

>하나의 프로세서는

>db_get_collection 으로 값을 가지고 와서 db_set_size로 사이즈만큼 for문을 돌면서 정보를 가지고 와서 비교후 지우거나 값을 가지고 오는 연산을 하고,

>

>다른 하나의 프로세서는

>해당 set의 인자 하나를 지우는 연산을 처리할때.

>

>두 프로세서의 작업이 동시에 이루어진다면

>두개의 프로세서간 set의 데이터 또는 set을 통한 다른 테이블의 데이터는

>정보를 읽어오는 측에서 유요하게 읽어올수 있는지 궁금해서 질문 드립니다.

 

정만영님이 2008-10-30 17:51에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1277Q.volume infomation 정보가 full에 대한 질문입니다. [1]
류성률
2008-11-03
5351
1276Q.렌덤으로 셀렉트하려면 어떻게 하죠?? [1]
김남진
2008-11-02
5968
1275Q.큐브리드에서 MDB파일 가져오기가 되나요? [2]
진현풍
2008-10-31
5777
1274Q.multiset에 대해서 질문 드립니다. [2]
강민철
2008-10-30
5170
1273Q.큐브리드 매니져로 데이타베이스 Start (Open)시 에러 [1]
안성민
2008-10-30
5251
1272Q.실행이안됩니다. [1]
오혜린
2008-10-29
5053
1271Q.DatabaseMetaData 클래스 getPrimaryKeys 관련 문의 [1]
김김김
2008-10-28
4879
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다