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 8623 게시물 읽기
No. 8623
Vacuum에서 full 사용 관련하여 문의 드립니다.
작성자
박병훈(bhhiphop)
작성일
2010-02-18 11:27
조회수
10,074

 안녕하세요.

vacuum 옵션 중 full관련하여 문의 드립니다.

다음과 같은 글을 찾게 되었는데요..

FREEZE is a special-purpose option that causes tuples to be marked "frozen" as soon as possible, rather than waiting until they are quite old. If this is done when there are no other open transactions in the same database, then it is guaranteed that all tuples in the database are "frozen" and will not be subject to transaction ID wraparound problems, no matter how long the database is left unvacuumed. FREEZE is not recommended for routine use. Its only intended usage is in connection with preparation of user-defined template databases, or other databases that are completely read-only and will not receive routine maintenance VACUUM operations. See Chapter 22 for details.

 

제가 알고 있기로는 full옵션을 사용하는동안 table들이 lock되어 data를 사용할 수 없다고 알고 있는데요..

저 위의 freeze와 frozen이 lock된다는 말로 해석하면 되는지요...

 

죄송하지만 주기적인 analyze를 사용한 vacuum이 full 옵션을 사용하는것보다 좋은건 알겠는데요.. full옵션이 왜 안좋은지 정리가 안되네요..

알려주세요^^

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

테이블이 락걸려서 안좋은거죠 ㅎ

신기배(소타)님이 2010-02-18 12:03에 작성한 댓글입니다.

안녕하세요,

vacuum은 vacuum 과 vacuum full 로 나뉩니다. analyze는 어차피 테이블 통계수집을 위한 옵션절이기 때문에 vacuum에 대한 내용에 같이 포함되지 않아도 될 것 같습니다.

 

vacuum 에 비해 vacuum full이 high cost 작업입니다. 게다가 vacuum full 의 경우 작업 대상 테이블에 exclusive lock을 필요로 합니다. vacuum 에 비해 vacuum full 이 비용이 많이 드는 이유는 실제 튜플(레코드)를 이동시키기 때문입니다. vacuum 은 테이블을 스캔하여 삭제되거나 갱신된 튜플이 있던 영역을 새로운 데이터가 사용하능하도록 표시하는 역할을 하지만, vacuum full은 실제 튜플이 저장된 영역을 '이동'하여 일종의 '조각모음'같은 동작을 수행합니다. 그래서 실제 vacuum full을 수행하게되면 파일 시스템 레벨에서도 공간확보가 되는 모습을볼수 있습니다.

김영우님이 2010-02-18 14:30에 작성한 댓글입니다. Edit

http://wiki.postgresql.org/wiki/Introduction_to_VACUUM%2C_ANALYZE%2C_EXPLAIN%2C_and_COUNT

김영우님이 2010-02-18 14:34에 작성한 댓글입니다. Edit

 답변 감사드립니다.

vacuum과 analyze를 통하여 사용하지 않은공간을 사용하도록 하고 쿼리 분석기를 업데이트를 하는것같구요..

 말씀주신것 처럼 full은 안쓰는 영역을 뒤로 빼서 데이터를 가지런히 놓이게 하는것 같은데요..이는 아마 Database를 export시키고 다시 import 시키는것과 비슷한 결과를 가질것이라고 생각합니다.

아직 명확하게 정의가 되지 않아서 그러는데요.. full이 않좋은 이유가 단지 high cost 잡업에 의한 부담감과 exclusive lock이 되어 진다는 건가요?? 그렇다면 full의 배큠이 끝나면.. exclusive lock이 풀리게 되는 건지요?

여기서 추가 질문입니다.

그렇다면.. 제가 원무을 볼때.. vacuum과 analyze를 주기적으로 하는것이 full을 돌리는것보다 효과적이라고 했는데요.. full후에 analyze를 돌리면 더욱 효과적이지 않을까 싶은데요...

또한, full을 자주 사용하면.. 속도가 오히려 저하된다고 어디서 들은것 같은데요... 왜 저하가 될까요.. 빈공간을 뒤에 데이터가 메워주어 더 효율적이라고 생각 하는데요...

박병훈(bhhiphop)님이 2010-02-19 16:56에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8627ecpg 가 이상해서요.
손광락
2010-02-25
7430
8626date 형식은 global 한것인가요? [2]
성제호
2010-02-24
8741
8624쿼리속도 비교 [2]
황수현
2010-02-19
9203
8623Vacuum에서 full 사용 관련하여 문의 드립니다. [4]
박병훈
2010-02-18
10074
8622칼럼 형 변환. [4]
슝슝이
2010-02-17
8240
8621Vacuum 관련 문의 드립니다. [2]
박병훈
2010-02-17
8291
8620Explorer6 invalid byte sequence for encoding 문제입니다. [2]
박주영
2010-02-16
10439
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다