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
운영게시판
최근게시물
PostgreSQL Q&A 9604 게시물 읽기
No. 9604
MS-SQL 개발자가 Postgresql사용하기 SELECT WITH(NOLOCK)
작성자
지현명(gwise)
작성일
2015-11-06 18:35ⓒ
2016-03-11 13:13ⓜ
조회수
12,481

MS SQL 개발자로서 10년 정도 몸담고 있다가 이번에 Postgresql을 공부하게 됐습니다. (단순하게 철학이 마음에 들어서..)

제일 처음에 알아 본게 select * from table with(nolock) / Read uncommitted이게 되는지 한참을 찾아 봤는데 postgresql에서는 dirty read를 지원하지 않고

set tranaction에서 Read uncommitted해도 실제로는 Read committed으로 한다고 해서 그지같다라고 생각하고 메뉴얼에서 MVCC 얘기 하길래

닷넷 개발 MVC 개념인가 해서 그냥 SKIP했었는데  우연찮게도 구글에서 아래 문서를 발견하고 놀라움에 공식 메뉴얼의 MVCC를 다시 봤습니다.

결론은 MS SQL에서 SELECT * FROM TABLE WITH(NOLOCK)/Read uncommitted 을 하지만 Postgresql에서는  SELECT * FROM TABLE 이렇게 하고 개념 상으로 더 정확하다.

조회 하는 테이블/row에 Lock이 걸려도 SELECT 할때 대기(?)상태 없이 조회 하는 시점의 Commit상태된 데이터만 select하게 됩니다.

MVCC로 Lock을 제어 하기 때문에 다른 db처럼 Dirty Read 개념이 필요 없다.

자세한 내용은 아래 글을 읽어봐주세요.  (이 철학 하나만 봐도 Postgresql은 대단하다는 생각이 듭니다.)

http://www.onlamp.com/pub/a/onlamp/2001/05/25/postgresql_mvcc.html

 

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

참고로, MVCC 를 구현한 대표적인 DB 가 ORACLE / POSTGRESQL 입니다.

둘다 좋은 DB 이죠. ORACLE  가격은 논외로 하고.

김성식(hellower)님이 2015-11-06 22:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9610Pro*C --> ECPG 변환 관련 질문 입니다. [1]
힛잉
2015-12-03
9354
9608테이블 oid가 데이터베이스 내에서 확인이 안되는 경우 [2]
김성환
2015-12-01
9183
9607도와주세요. 고수님 [2]
어려워
2015-11-27
8953
9604MS-SQL 개발자가 Postgresql사용하기 SELECT WITH(NOLOCK) [1]
지현명
2015-11-06
12481
9602dsn [2]
postgresql
2015-10-11
9389
9601ODBC CONNECT [1]
오디비씨
2015-10-11
9711
96009.4 버전 pl/java 이용 [1]
우편
2015-10-06
9980
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다