thePG_FREESPACEMAP모듈 제공
여유 공간 맵 (FSM)을 검사하는 수단. 그것은 두 개의 c를 제공합니다
기능 :PG_FREESPACEMAP_RELATION
andPG_FREESPACEMAP_PAGES
각 세트를 반환합니다
레코드, 두 개의 견해PG_FREESPACEMAP_RELATIONandPG_FREESPACEMAP_PAGES함수를 감싸십시오
편리한 용도로.
기본적으로 공개 액세스는 기능에서 취소되었습니다. 견해, 보안 문제가 숨어있는 경우를 대비하여.
보기에 노출 된 열의 정의는 다음과 같습니다.
표 F-23.PG_FREESPACEMAP_RELATION열
이름 | type | 참조 | 설명 |
---|---|---|---|
reltablespace | OID | pg_tablespace.oid | 관계의 테이블 스페이스 OID |
Reldatabase | OID | pg_database.oid | 관계의 데이터베이스 OID |
relfilenode | OID | pg_class.relfilenode | 관계의 Relfilenode |
avgrequest | 정수 | 여유 공간 요청의 이동 평균 (null 인덱스) | |
흥미로운 윈 토토 | Integer | 마지막으로 유용한 것으로보고 된 윈 토토 수입니다 여유 공간 | |
StoredPages | Integer | 실제로 여유 공간에 저장된 윈 토토 수 지도 | |
NextPage | 정수 | 12488_12533 |
표 F-24.PG_FREESPACEMAP_PAGES열
이름 | 타입 | 참조 | 설명 |
---|---|---|---|
reltablespace | OID | pg_tablespace.oid | 관계의 테이블 스페이스 OID |
Reldatabase | OID | pg_database.oid | 관계의 데이터베이스 OID |
relfilenode | OID | pg_class.relfilenode | 관계의 Relfilenode |
RelblockNumber | bigint | 관계 내 윈 토토 번호 | |
바이트 | 정수 | 페이지의 무료 바이트 또는 색인 페이지의 경우 NULL (아래 참조) |
forPG_FREESPACEMAP_RELATION, 여유 공간지도에는 각 관계에 대해 하나의 행이 있습니다.StoredPages는 윈 토토 수입니다 실제로지도에 저장된 동안흥미로운 윈 토토는 윈 토토 수입니다 마지막진공생각은 유용한 금액을 가지고있었습니다 여유 공간의.
ifStoredPages일관되게 있습니다 미만흥미로운 윈 토토그런 다음 좋은 생각이 될 것입니다max_fsm_pages. 또한 행의 수가PG_FREESPACEMAP_RELATION가깝습니다 에게max_fsm_relations증가 고려max_fsm_relations.
forPG_FREESPACEMAP_PAGES, 거기 여유 공간 맵의 각 윈 토토마다 하나의 행입니다. 수 관계에 대한 행은와 일치합니다.StoredPages열에서 열PG_FREESPACEMAP_RELATION.
인덱스의 경우 추적 된 내용은 완전히 사용되지 않은 페이지입니다. 페이지 내의 여유 공간보다는. 따라서 평균 한 페이지 내의 요청 크기와 무료 바이트는 의미가 없습니다. 그리고 null로 표시됩니다.
맵은 모든 데이터베이스에서 공유되므로 일반적으로 현재에 속하지 않는 관계에 대한 출입 데이터 베이스. 이것은 결합 행이 일치하지 않을 수 있음을 의미합니다. 안에PG_CLASS일부 행의 경우 잘못된 조인도있을 수 있습니다. 가입하려는 경우 에 맞서pg_class, 좋은 생각입니다 가입을 행으로 제한하려면Reldatabase현재 데이터베이스와 동일합니다 OID 또는 ZERO.
뷰 중 하나에 액세스 할 때 내부 여유 공간 지도 잠금은 모든 상태 데이터를 복사 할 수있을 정도로 오랫동안 촬영됩니다. 보기가 표시됩니다. 이것은보기가 생성되도록합니다 정상적인 활동을 차단하지 않고 일관된 결과 세트 필요 이상. 그럼에도 불구하고 약간의 영향이있을 수 있습니다 데이터베이스 성능이 자주 읽는 경우.
회귀 =# C.RelName, R.Avgrequest, R.InterestingPages, R.StoredPages를 선택하십시오 PG_FREESPACEMAP_RELATIONS에서 r 내부 조인 PG_CLASS C. r.relfilenode = c.relfilenode 및 R.RELDATABASE의 (0, (PG_DATABASE에서 OID를 선택하십시오 여기서 datname = current_database ())) R.STAREDPAGES DESC LIMIT 10에 의한 주문; Relname | avgrequest | 흥미로운 윈 토토 | 저장된 페이지 --------------------------------------------------------------------- ONEK | 256 | 109 | 109 PG_ATTRIBUT | 167 | 93 | 93 pg_class | 191 | 49 | 49 pg_attribute_relid_attnam_index | | 48 | 48 ONEK2 | 256 | 37 | 37 pg_depende | 95 | 26 | 26 pg_type | 199 | 16 | 16 pg_rewrite | 1011 | 13 | 13 pg_class_relname_nsp_index | | 10 | 10 pg_proc | 302 | 8 | 8 (10 줄) 회귀 =# 선택 C.RelName, P.RelBlockNumber, P.Bytes를 선택하십시오 PG_FREESPACEMAP_PAGES에서 PG_CLASS C. p.relfilenode = c.relfilenode 및 p.reldatabase in (0, PG_DATABASE에서 OID를 선택하십시오 여기서 datname = current_database ())) c.relname 한계 10; Relname | RelBlockNumber | 바이트 -------------+-------------------------- a_star | 0 | 8040 abstime_tbl | 0 | 7908 aggtest | 0 | 8008 altinhoid | 0 | 8128 altstartwith | 0 | 8128 Arrtest | 0 | 7172 b_star | 0 | 7976 box_tbl | 0 | 7912 BT_F8_HEAP | 54 | 7728 BT_I4_HEAP | 49 | 8008 (10 줄)
Mark Kirkwood<markir@paradise.net.nz