그pg_freespacemap모듈은 다음을 제공합니다
FSM(Free Space Map)을 검사하는 수단입니다. 2개의 C를 제공합니다.
기능:pg_freespacemap_relations그리고pg_freespacemap_pages각각은 다음 세트를 반환합니다.
기록과 2개의 조회수pg_freespacemap_relations그리고pg_freespacemap_pages9888_9936
기본적으로 공개 접근은 기능에서 취소되고 보안 문제가 숨어 있는 경우를 대비해 보기를 참조하세요.
뷰에 의해 노출된 열의 정의는 다음과 같습니다:
표 F-23.pg_freespacemap_relations열
| 이름 | 유형 | 참고자료 | 설명 |
|---|---|---|---|
| reltablespace | oid | pg_tablespace.oid | 관계의 테이블스페이스 OID |
| reldatabase | oid | pg_database.oid | 관계의 데이터베이스 OID |
| relfilenode | oid | pg_class.relfilenode | 관계의 Relfilenode |
| avgrequest | 정수 | 여유 공간 요청의 이동 평균(다음의 경우 NULL) 인덱스) | |
| 흥미로운 윈 토토 | 정수 | 유용한 내용이 포함된 것으로 마지막으로 보고된 윈 토토 수 여유 공간 | |
| 저장된 윈 토토 | 정수 | 실제로 여유 공간에 저장된 윈 토토 수 지도 | |
| 다음페이지 | 정수 | 다음 검색을 시작할 페이지 색인(0부터) |
표 F-24.pg_freespacemap_pages열
| 이름 | 유형 | 참고자료 | 설명 |
|---|---|---|---|
| reltablespace | oid | pg_tablespace.oid | 관계의 테이블스페이스 OID |
| reldatabase | oid | pg_database.oid | 관계의 데이터베이스 OID |
| relfilenode | oid | pg_class.relfilenode | 관계의 Relfilenode |
| relblocknumber | 비긴트 | 관계 내의 윈 토토 번호 | |
| 바이트 | 정수 | 페이지의 여유 바이트 또는 인덱스 페이지의 경우 NULL (아래 참조) |
용pg_freespacemap_relations, 여유 공간 맵에는 각 관계에 대해 하나의 행이 있습니다.저장된 윈 토토윈 토토 수입니다 실제로 지도에 저장되는 반면흥미로운 윈 토토윈 토토 수는 마지막진공유용한 양이 있다고 생각했어요 여유 공간이 있습니다.
만약저장된 윈 토토일관되게 미만흥미로운 윈 토토그러면 늘리는 것이 좋을 것 같아요max_fsm_pages. 또한,pg_freespacemap_relations가까움 에max_fsm_relations, 그럼 해야지 늘리는 것을 고려해보세요max_fsm_relations.
용pg_freespacemap_pages저기요 여유 공간 맵의 각 페이지에 대해 한 행입니다. 수 관계에 대한 행은 다음과 일치합니다.저장된 윈 토토열 입력pg_freespacemap_relations.
색인의 경우 추적되는 것은 완전히 사용되지 않은 페이지입니다. 페이지 내의 여유 공간이 아닌. 따라서 평균 페이지 내 요청 크기와 여유 바이트는 의미가 없습니다. NULL로 표시됩니다.
지도는 모든 데이터베이스에서 공유되기 때문에 일반적으로 현재에 속하지 않는 관계에 대한 항목입니다. 데이터베이스. 이는 일치하는 조인 행이 없을 수 있음을 의미합니다. 에서pg_class일부 행 또는 그 잘못된 조인이 있을 수도 있습니다. 가입하려고 하면 반대pg_class좋은 생각이네요 다음을 갖는 행으로 조인을 제한합니다.reldatabase현재 데이터베이스와 동일 OID 또는 0입니다.
보기 중 하나에 액세스하면 내부 여유 공간 모든 상태 데이터를 복사할 수 있을 만큼 오랫동안 지도 잠금이 수행됩니다. 뷰가 표시됩니다. 이렇게 하면 뷰가 생성됩니다. 정상적인 활동을 차단하지 않으면서 일관된 결과 세트 필요 이상으로 오래. 그래도 어느 정도 영향은 있을 수 있겠네요 자주 읽는 경우 데이터베이스 성능에 영향을 미칩니다.
regression=# SELECT c.relname, r.avgrequest, r.interestingpages, r.storedpages
pg_freespacemap_relations r 내부 조인 pg_class c에서
ON r.relfilenode = c.relfilenode AND
r.reldatabase IN (0, (pg_database에서 oid 선택
WHERE datname = current_database()))
ORDER BY r.storedpages DESC LIMIT 10;
이름 | 평균 | 흥미로운 윈 토토 | 저장된 윈 토토
--------+------------+------+-------------
오넥 | 256 | 109 | 109
pg_속성 | 167 | 93 | 93
pg_클래스 | 191 | 49 | 49
pg_attribute_relid_attnam_index | | 48 | 48
원크2 | 256 | 37 | 37
pg_의존 | 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행)
회귀=# SELECT c.relname, p.relblocknumber, p.bytes
pg_freespacemap_pages p에서 내부 조인 pg_class c
ON p.relfilenode = c.relfilenode AND
p.reldatabase IN (0, (pg_database에서 oid 선택
WHERE datname = current_database()))
ORDER BY c.relname LIMIT 10;
이름 | relblock번호 | 바이트
------------+---+-------
에이스타 | 0 | 8040
절대시간_tbl | 0 | 7908
집계 | 0 | 8008
알티노이드 | 0 | 8128
대체시작 | 0 | 8128
체포 | 0 | 7172
b_스타 | 0 | 7976
상자_tbl | 0 | 7912
bt_f8_heap | 54 | 7728
bt_i4_힙 | 49 | 8008
(10행)
마크 커크우드<markir@paradise.net.nz