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 9312 게시물 읽기
No. 9312
인덱스 리빌드 관련 문의
작성자
초보자(pgadmin)
작성일
2013-07-08 15:30
조회수
10,006

안녕하세요.

오라클만 해보다 pgsql 을 접해보는 초보 입니다.

인덱스 테이블스페이스 변경 작업을 하려고 하는데.

오라클 같은 경우는 

alter talbe ~ 후 해당 인덱스 레빌드

alter index index_name rebuild  tablespace tbs_name 처럼 리빌드 하면서 테이블스페이스 변경

처럼 인덱스 리빌드 작업이 필요한데요.

pgsql 같은경우는 인덱스 리빌드 작업을 안해줘도 데이터 조회나 플랜이 정상적으로 보여지더라구요. move도 되고

vacuume 작업때문에 필요 없는지 아님 다른 추가 작업을 해줘야 하나요?

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

tablespace 변경 작업에 따른 인덱스 다시 만들기 작업은 필요 없습니다.

단지 해당 디스크의 성능 문제로 쿼리 최적화 작업에서 실행 계획을 좀 더 치밀하게 짤 수 있도록 

하려고 서버 환경설정을 테이블 스페이스 단위로 설정할 수 있으나 잘 쓰는 기법도 아니니 무시 하셔도 되고요.

김상기(ioseph)님이 2013-07-08 15:53에 작성한 댓글입니다.

 인덱스 리빌드 작업이 필요 없는 이유도 알 수 있을까요?

오라클은 인덱스 세그먼트에 rowid 정보가 달라져 필수 인데...

초보자(pgadmin)님이 2013-07-08 16:49에 작성한 댓글입니다.

인덱스의 테이블스페이스를 바꾼다는 것 자체가

물리적으로 새 테이블스페이스에 인덱스를 하나 더 만들고, 옛날 인덱스를 버린다 것을 의미하거든요.

그래서, 테이블스페이스를 바꿀 때 그 인덱스의 크기 만큼 디스크 입출력이 일어납니다.

또한 이 작업은 상식적으로 봐도 테이블 전체 잠금을 사용하게 될 것입니다.

자료 변경분이 없으니, 당연히 통계정보도 바뀔 것이 없을 것이고, 그렇기 때문에, auto vacuum 에서 analyze 작업은 안할 것 같고요. (추측)

오라클과 달리 PostgreSQL에서의 테이블스페이스는 OS의 디렉토리 개념으로 보면 쉽게 이해할 수 있을 것 같네요.

테이블스페이스륿 바꾼 다는 것은 어느 디렉토리내에 있는 파일을 다른 디렉토리로 옮기는 작업입니다.

 

테이블스페이스의 공간 관리를 하겠다는 말은 그 디렉토리의 공간관리를 하겠다는 것이고,

그것은 결국 DB 작업이 아니라, OS 작업이 됨을 의미합니다.

 

 

김상기(ioseph)님이 2013-07-09 10:30에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9315복원 시 문제점 [1]
초보
2013-07-13
9699
9314bytea 에 담겨진 이미지 가져오는게 안되네요 [1]
김선환
2013-07-09
10023
9313order by 와 limit을 같이 쓸 경우.. [2]
postgresking
2013-07-08
10269
9312인덱스 리빌드 관련 문의 [3]
초보자
2013-07-08
10006
9311갑자기 오전에 createdb를 하면 생성이 안됩니다. [3]
강승준
2013-07-08
9989
9310PostgreSQL에서 fuction간 호출문제 [1]
최종호
2013-07-05
9633
9309pgsql 과 mysql DB 연동 방법은 없나요? [1]
새싹님
2013-07-02
10528
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다