F.23. PageInspect-데이터베이스 롤 토토의 저수준 검사#

thePageInspect모듈은 데이터베이스 롤 토토의 내용을 낮은 레벨에서 검사 할 수있는 기능을 제공하며, 이는 디버깅 목적으로 유용합니다. 이러한 모든 기능은 슈퍼업자에 의해서만 사용될 수 있습니다.

F.23.1. 일반 기능#

get_raw_page (relname 텍스트, 포크 텍스트, blkno bigint) bytea를 반환합니다

get_raw_page지정된 관계의 지정된 블록을 읽고 사본을 A로 반환합니다BYTEA값. 이를 통해 블록의 단일 일관된 사본을 얻을 수 있습니다.포크'main'기본 데이터 포크의 경우'FSM'PostgreSQL : 문서 : 17 : 65.3. 여유 배트맨 토토, 'vm'토토 베이 : 문서 : 17 : 65.4. 가시성 맵또는'init'초기화 포크 용

get_raw_page (Relname Text, Blkno bigint) Bytea를 반환합니다

속기 버전의get_raw_page, 메인 포크에서 읽기. 동등한get_raw_page (relname, 'main', blkno)

page_header (Page Bytea) 레코드를 반환

page_header모든 것에 공통적 인 필드를 보여줍니다PostgreSQL힙 및 인덱스 롤 토토.

획득 한 롤 토토 이미지get_raw_page인수로 전달되어야합니다. 예를 들어:

test =# select * from page_header (get_raw_page ( 'pg_class', 0));
    LSN | 체크섬 | 깃발 | 더 낮은 | 상단 | 스페셜 | Pagesize | 버전 | prune_xid
-----------+----------+--------+------------------------------------------------------------------------------------------------------
 0/24A1B50 |        0 |      1 |   232 |   368 |    8192 |     8192 |       4 |         0

반환 된 열은의 필드에 해당합니다.PageHeaderData구조. 보다src/include/storage/bufpage.h자세한 내용.

theChecksum필드는 롤 토토에 저장된 체크섬이며, 롤 토토가 어떻게 든 손상되면 부정확 할 수 있습니다. 이 인스턴스에 대한 데이터 체크섬이 활성화되지 않으면 저장된 값은 의미가 없습니다.

page_checksum (Page Bytea, Blkno bigint)을 반환

page_checksum주어진 블록에있는 것처럼 롤 토토의 체크섬을 계산합니다.

획득 한 롤 토토 이미지get_raw_page인수로 통과해야합니다. 예를 들어:

test =# select page_checksum (get_raw_page ( 'pg_class', 0), 0);
 page_checksum
-----------------
         13443

체크섬은 블록 번호에 따라 달라 지므로 일치하는 블록 번호를 전달해야합니다 (밀교 디버깅을 수행 할 때 제외)..

이 함수로 계산 된 체크섬은와 비교할 수 있습니다.CheckSum함수의 결과 필드page_header. 이 인스턴스에 대한 데이터 체크섬이 활성화되면 두 값이 같아야합니다.

fsm_page_contents (page bytea) 텍스트를 반환

FSM_PAGE_CONTENTSAN의 내부 노드 구조 표시FSM롤 토토. 예를 들어:

test =# 선택 fsm_page_contents (get_raw_page ( 'pg_class', 'fsm', 0));

출력은 멀티 라인 문자열이며 페이지 내 바이너리 트리의 노드 당 한 줄 당 1 줄입니다. 0이 아닌 노드 만 인쇄됩니다. 페이지에서 반환 할 다음 슬롯을 가리키는 소위 "다음"포인터도 인쇄됩니다.

참조SRC/백엔드/스토리지/프리 스페이스/readmeAN의 구조에 대한 자세한 내용은FSM롤 토토.

F.23.2. 힙 함수#

Heap_Page_Items (Page Bytea) 레코드를 반환

heap_page_items힙 롤 토토에 모든 줄 포인터가 표시됩니다. 사용중인 라인 포인터의 경우 튜플 헤더 및 튜플 원시 데이터도 표시됩니다. 튜플이 원시 롤 토토를 복사 할 때 MVCC 스냅 샷으로 보이는지 여부에 관계없이 모든 튜플이 표시됩니다.

획득 한 힙 롤 토토 이미지get_raw_page인수로 전달되어야합니다. 예를 들어:

test =# heap_page_items에서 * select * (get_raw_page ( 'pg_class', 0));

참조src/include/storage/itemid.handsrc/include/access/htup_details.h반환 된 필드에 대한 설명.

theheap_tuple_infomask_flags함수는의 플래그 비트를 풀기 위해 사용될 수 있습니다.T_INFOMASKandT_INFOMASK2힙 튜플 용.

tuple_data_split (rel_oid oid, t_data bytea, t_infomask integer, t_infomask2 integer, t_bits 텍스트 [, do_detoast bool]) bytea []를 반환합니다.

tuple_data_split백엔드 내부와 같은 방식으로 튜플 데이터를 속성으로 분할합니다.

test =# 선택 tuple_data_split ( 'pg_class':: regclass, t_data, t_infomask, t_infomask2, t_bits)에서 heap_page_items (get_raw_page ( 'pg_class', 0));;

이 함수는의 반환 속성과 동일한 인수와 함께 호출되어야합니다.heap_page_items.

ifdo_detoastistrue, 속성은 필요에 따라 해소됩니다. 기본값은거짓.

heap_page_item_attrs (페이지 bytea, rel_oid regclass [, do_detoast bool]) record를 반환

heap_page_item_attrsheap_page_items튜플 원시 데이터를 선택적으로 고용 할 수있는 속성 배열로 튜플을 반환하는 것을 제외하고do_detoast거짓기본적으로.

획득 한 힙 롤 토토 이미지get_raw_page인수로 통과해야합니다. 예를 들어:

test =# heap_page_item_attrs에서 * select * select *
heap_tuple_infomask_flags (t_infomask inger, t_infomask2 정수) 레코드를 반환

heap_tuple_infomask_flags디코딩T_INFOMASKandT_INFOMASK2반환heap_page_items깃발 이름으로 만들어진 사람이 읽을 수있는 배열 세트로, 모든 플래그에 대해 하나의 열, 결합 된 플래그에는 열이 있습니다. 예를 들어:

test =# t_ctid, raw_flags, combined_flags를 선택하십시오
         heap_page_items에서 (get_raw_page ( 'pg_class', 0)),
           측면 heap_tuple_infomask_flags (t_infomask, t_infomask2)
         t_infomask가 null이 아닌 경우, t_infomask2는 null이 아닙니다;

이 함수는의 반환 속성과 동일한 인수와 함께 호출되어야합니다.heap_page_items.

결합 된 플래그는 소스 레벨 매크로에 대해 표시됩니다.heap_xmin_frozen.

참조src/include/access/htup_details.h플래그 이름에 대한 설명은 반환되었습니다.

F.23.3. B- 트리 기능#

BT_METAP (RELNAME TEXT) 레코드를 반환

bt_metapB-Tree 지수의 메타지에 대한 정보를 반환합니다. 예를 들어:

test =# select * from bt_metap ( 'pg_cast_oid_index');
-[레코드 1] ------------+-------
마술 | 340322
버전 | 4
루트 | 1
레벨 | 0
Fastroot | 1
FastLevel | 0
last_cleanup_num_delpages | 0
last_cleanup_num_tuples | 230
Allequalimage | 에프
BT_PAGE_STATS (Relname Text, Blkno Bigint)를 반환합니다

BT_PAGE_STATSB-Tree 지수의 데이터 페이지에 대한 요약 정보를 반환합니다. 예를 들어:

test =# select * from bt_page_stats ( 'pg_cast_oid_index', 1);
-[레코드 1]-+----
Blkno | 1
유형 | 엘
live_items | 224
dead_items | 0
avg_item_size | 16
page_size | 8192
free_size | 3668
btpo_prev | 0
btpo_next | 0
btpo_level | 0
btpo_flags | 3
bt_multi_page_stats (Relname 텍스트, blkno bigint, blk_count bigint) setof record를 반환합니다

bt_multi_page_stats동일한 정보를 반환합니다BT_PAGE_STATS,하지만에서 시작하는 롤 토토 범위의 각 롤 토토에 대해Blkno그리고 확장blk_count롤 토토. 만약에blk_count음수입니다.Blkno지수의 끝까지보고됩니다. 예를 들어:

test =# select * from bt_multi_page_stats ( 'pg_proc_oid_index', 5, 2);
-[레코드 1]-+----
Blkno | 5
유형 | 엘
live_items | 367
dead_items | 0
avg_item_size | 16
page_size | 8192
free_size | 808
btpo_prev | 4
btpo_next | 6
btpo_level | 0
btpo_flags | 1
-[레코드 2]-+----
Blkno | 6
유형 | 엘
live_items | 367
dead_items | 0
avg_item_size | 16
page_size | 8192
free_size | 808
btpo_prev | 5
btpo_next | 7
btpo_level | 0
btpo_flags | 1
BT_PAGE_ITEMS (Relname Text, Blkno BigInt)를 반환합니다

bt_page_itemsB-Tree Index 페이지의 모든 항목에 대한 자세한 정보를 반환합니다. 예를 들어:

test =# itemoffset, ctid, itemlen, nulls, vars, data, dead, htid, tids [0 : 2] sode _tids
        bt_page_items ( 'tenk2_hundred', 5);
 ItemOffset |   ctid | ItemLen | 널스 | vars |          데이터 | 죽은 |  htid |      some_tids
-------------+-----------+---------+-------+-------+------------------------------------------------------------------------------------------------
          1 | (16,1) |      16 | f | f | 30 00 00 00 00 00 00 00 |      |        |
          2 | (16,8292) |     616 | f | f | 24 00 00 00 00 00 00 00 | f | (1,6) |  "(1,6)", "(10,22)"
          3 | (16,8292) |     616 | f | f | 25 00 00 00 00 00 00 00 | f | (1,18) |  "(1,18)", "(4,22)"
          4 | (16,8292) |     616 | f | f | 26 00 00 00 00 00 00 00 | f | (4,18) |  "(4,18)", "(6,17)"
          5 | (16,8292) |     616 | f | f | 27 00 00 00 00 00 00 00 | f | (1,2) |  "(1,2)", "(1,19)"
          6 | (16,8292) |     616 | f | f | 28 00 00 00 00 00 00 00 | f | (2,24) |  "(2,24)", "(4,11)"
          7 | (16,8292) |     616 | f | f | 29 00 00 00 00 00 00 00 | f | (2,17) |  "(2,17)", "(11,2)"
          8 | (16,8292) |     616 | f | f | 2A 00 00 00 00 00 00 00 | f | (0,25) |  "(0,25)", "(3,20)"
          9 | (16,8292) |     616 | f | f | 2B 00 00 00 00 00 00 00 | f | (0,10) |  "(0,10)", "(0,14)"
         10 | (16,8292) |     616 | f | f | 2C 00 00 00 00 00 00 00 | f | (1,3) |  "(1,3)", "(3,9)"
         11 | (16,8292) |     616 | f | f | 2d 00 00 00 00 00 00 00 00 | f | (6,28) |  "(6,28)", "(11,1)"
         12 | (16,8292) |     616 | f | f | 2E 00 00 00 00 00 00 00 00 | f | (0,27) |  "(0,27)", "(1,13)"
         13 | (16,8292) |     616 | f | f | 2F 00 00 00 00 00 00 00 | f | (4,17) |  "(4,17)", "(4,21)"

이것은 B- 트리 리프 롤 토토입니다. 테이블을 가리키는 모든 튜플은 목록 튜플을 게시합니다 (모두 총 100 개의 바이트 TID를 저장). 도 있습니다.높은 키튜플 atitemoffset번호 1CTID이 예제에서 각 튜플에 대한 인코딩 된 정보를 저장하는 데 사용되지만 잎 롤 토토 튜플은 종종 힙 정리를 직접 저장합니다CTID대신 필드tids게시 목록으로 저장된 TID 목록입니다.

내부 롤 토토 (표시되지 않음)에서 블록 번호 부분CTIDis다운 링크, 인덱스 자체의 다른 롤 토토의 블록 번호입니다. 오프셋 부분 (두 번째 숫자)의CTID존재하는 열의 수와 같은 튜플에 대한 인코딩 된 정보 (접미사 절단은 불필요한 접미사 열을 제거했을 수 있음). 잘린 열은 가치가있는 것으로 취급마이너스 인피니티.

htid기본 튜플 표현에 관계없이 튜플의 힙 삭제를 보여줍니다. 이 값은 일치 할 수 있습니다CTID또는 내부 페이지에서 목록 튜플 및 튜플을 게시하여 사용되는 대체 표현에서 디코딩 될 수 있습니다. 내부 페이지의 튜플은 일반적으로 구현 레벨 힙 TID 열이 잘려서 널로 표시됩니다htidvalue.

가장 오른쪽이 아닌 롤 토토의 첫 번째 항목 (에 0이 아닌 모든 롤 토토​​btpo_next필드)는 롤 토토입니다높은 키, 그 의미데이터롤 토토에 나타나는 모든 항목의 상한 역할을하는 반면CTID필드는 다른 블록을 가리키지 않습니다. 또한 내부 페이지에서 최초의 실제 데이터 항목 (높은 키가 아닌 첫 번째 항목)은 모든 열이 잘려 나서 실제 값을 남기지 않습니다.데이터필드. 이러한 항목은 유효한 다운 링크가 있습니다.CTID필드.

B- 트리 지수의 구조에 대한 자세한 내용은 참조섹션 64.1.4.1. 중복 제거 및 게시 목록에 대한 자세한 내용은 참조하십시오.섹션 64.1.4.3.

bt_page_items (page bytea) 레코드를 반환

롤 토토를 전달할 수도 있습니다bt_page_itemsasBYTEA값. 와 함께 얻은 롤 토토 이미지get_raw_page인수로 통과해야합니다. 마지막 예제는 다음과 같이 다시 작성할 수 있습니다.

test =# itemoffset, ctid, itemlen, nulls, vars, data, dead, htid, tids [0 : 2] sode as some_tids
        bt_page_items에서 (get_raw_page ( 'tenk2_hundred', 5));
 ItemOffset |   ctid | ItemLen | 널스 | vars |          데이터 | 죽은 |  htid |      some_tids
-------------+-----------+---------+-------+-------+------------------------------------------------------------------------------------------------
          1 | (16,1) |      16 | f | f | 30 00 00 00 00 00 00 00 |      |        |
          2 | (16,8292) |     616 | f | f | 24 00 00 00 00 00 00 00 | f | (1,6) |  "(1,6)", "(10,22)"
          3 | (16,8292) |     616 | f | f | 25 00 00 00 00 00 00 00 | f | (1,18) |  "(1,18)", "(4,22)"
          4 | (16,8292) |     616 | f | f | 26 00 00 00 00 00 00 00 | f | (4,18) |  "(4,18)", "(6,17)"
          5 | (16,8292) |     616 | f | f | 27 00 00 00 00 00 00 00 | f | (1,2) |  "(1,2)", "(1,19)"
          6 | (16,8292) |     616 | f | f | 28 00 00 00 00 00 00 00 | f | (2,24) |  "(2,24)", "(4,11)"
          7 | (16,8292) |     616 | f | f | 29 00 00 00 00 00 00 00 | f | (2,17) |  "(2,17)", "(11,2)"
          8 | (16,8292) |     616 | f | f | 2A 00 00 00 00 00 00 00 | f | (0,25) |  "(0,25)", "(3,20)"
          9 | (16,8292) |     616 | f | f | 2B 00 00 00 00 00 00 00 | f | (0,10) |  "(0,10)", "(0,14)"
         10 | (16,8292) |     616 | f | f | 2C 00 00 00 00 00 00 00 | f | (1,3) |  "(1,3)", "(3,9)"
         11 | (16,8292) |     616 | f | f | 2d 00 00 00 00 00 00 00 00 | f | (6,28) |  "(6,28)", "(11,1)"
         12 | (16,8292) |     616 | f | f | 2E 00 00 00 00 00 00 00 00 | f | (0,27) |  "(0,27)", "(1,13)"
         13 | (16,8292) |     616 | f | f | 2F 00 00 00 00 00 00 00 | f | (4,17) |  "(4,17)", "(4,21)"

다른 모든 세부 사항은 이전 항목에서 설명한 것과 동일합니다.

F.23.4. 브린 기능#

brin_page_type (page bytea) 텍스트를 반환

brin_page_type주어진 페이지 유형을 반환브린인덱스 페이지 또는 페이지가 유효하지 않은 경우 오류를 버립니다브린롤 토토. 예를 들어:

test =# select brin_page_type (get_raw_page ( 'brinidx', 0));
 brin_page_type
---------------
 메타
brin_metapage_info (Page Bytea) 레코드를 반환

brin_metapage_infoA에 대한 다양한 정보를 반환합니다브린인덱스 메타지. 예를 들어:

test =# select * from brin_metapage_info (get_raw_page ( 'brinidx', 0));
   마술 | 버전 | PagesperRange | lastevmappage
------------+---------+----------------------------------
 0xa8109cfa |       1 |             4 |              2
brin_revmap_data (page bytea) setof tid 반환

brin_revmap_dataA에서 튜플 식별자 목록을 반환합니다브린인덱스 범위 맵 롤 토토. 예를 들어:

test =# select * from brin_revmap_data (get_raw_page ( 'brinidx', 2)) 한계 5;
  페이지
-------
 (6,137)
 (6,138)
 (6,139)
 (6,140)
 (6,141)
brin_page_items (페이지 bytea, index oid) setof record를 반환합니다

brin_page_items에 저장된 데이터를 반환합니다브린데이터 롤 토토. 예를 들어:

test =# select * from brin_page_items (get_raw_page ( 'brinidx', 5),
                                     'brinidx')
       Blknum, Attnum Limit 6에 의한 주문;
 ItemOffset | Blknum | Attnum | allnulls | Hasnulls | 자리 표시 자 | 빈 |    값
------------+--------+-------+----------------------------------------------------------------------------------------------------------------------
        137 |      0 |      1 | t | f | f | f |
        137 |      0 |      2 | f | f | f | f | 1 .. 88
        138 |      4 |      1 | t | f | f | f |
        138 |      4 |      2 | f | f | f | f | 89 .. 176
        139 |      8 |      1 | t | f | f | f |
        139 |      8 |      2 | f | f | f | f | 177 .. 264

반환 된 열은의 필드에 해당합니다.brinmemtupleandBrinValuesstructs. 보다src/include/access/brin_tuple.h자세한 내용.

F.23.5. 진 기능#

gin_metapage_info (Page Bytea) 레코드를 반환

gin_metapage_infoA에 대한 정보를 반환합니다인덱스 메타지. 예를 들어:

test =# select * from gin_metapage_info (get_raw_page ( 'gin_index', 0));
-[레코드 1] ----+-----------
ending_head | 4294967295
pending_tail | 4294967295
tail_free_size | 0
n_pending_pages | 0
n_pending_tuples | 0
n_total_pages | 7
n_entry_pages | 6
N_DATA_PAGES | 0
n_entries | 693
버전 | 2
GIN_PAGE_OPAQUE_INFO (PAGE BYTEA) 레코드를 반환

gin_page_opaque_infoA에 대한 정보를 반환합니다롤 토토 유형과 같은 색인 불투명 영역. 예를 들어:

test =# select * from gin_page_opaque_info (get_raw_page ( 'gin_index', 2));
 오른쪽 링크 | Maxoff |         깃발
-----------+-------+----------------------------
         5 |      0 | 데이터, 잎, 압축
gin_leafpage_items (page bytea) 레코드를 반환

gin_leafpage_items압축에 저장된 데이터에 대한 정보를 반환gin잎 롤 토토. 예를 들어:

test =# first_tid, nbytes, tids [0 : 5]를 some_tids로 선택하십시오
        gin_leafpage_items에서 (get_raw_page ( 'gin_test_idx', 2));
 First_tid | nbytes |                        some_tids
-----------+-------+-------------------------------------------------------------------
 (8,41) |    244 |  "(8,41)", "(8,43)", "(8,44)", "(8,45)", "(8,46)"
 (10,45) |    248 |  "(10,45)", "(10,46)", "(10,47)", "(10,48)", "(10,49)"
 (12,52) |    248 |  "(12,52)", "(12,53)", "(12,54)", "(12,55)", "(12,56)"
 (14,59) |    320 |  "(14,59)", "(14,60)", "(14,61)", "(14,62)", "(14,63)"
 (167,16) |    376 |  "(167,16)", "(167,17)", "(167,18)", "(167,19)", "(167,20)"
 (170,30) |    376 |  "(170,30)", "(170,31)", "(170,32)", "(170,33)", "(170,34)"
 (173,44) |    197 |  "(173,44)", "(173,45)", "(173,46)", "(173,47)", "(173,48)"

F.23.6. GIST 기능#

GIST_PAGE_OPAQUE_INFO (PAGE BYTEA) 레코드를 반환

gist_page_opaque_infoA에서 정보를 반환합니다gistNSN, 오른쪽 링크 및 롤 토토 유형과 같은 색인 롤 토토의 불투명 영역. 예를 들어:

test =# select * from gist_page_opaque_info (get_raw_page ( 'test_gist_idx', 2));
 LSN | NSN | 오른쪽 링크 | 깃발
-----+-----+----------+--------
 0/1 | 0/0 |         1 | 잎
GIST_PAGE_ITEMS (Page Bytea, Index_oid Regclass) 레코드를 반환

gist_page_itemsa에 저장된 데이터에 대한 정보를 반환합니다gist색인. 예를 들어:

test =# select * from gist_page_items (get_raw_page ( 'test_gist_idx', 0), 'test_gist_idx');
 ItemOffset |   ctid | ItemLen | 죽은 |             열쇠
-------------+-----------+--------+-------+------------------------------------------------------------------
          1 | (1,65535) |      40 | f | (p) = ( "(185,185), (1,1)")
          2 | (2,65535) |      40 | f | (P) = ( "(370,370), (186,186)")
          3 | (3,65535) |      40 | f | (P) = ( "(555,555), (371,371)")
          4 | (4,65535) |      40 | f | (P) = ( "(740,740), (556,556)")
          5 | (5,65535) |      40 | f | (P) = ( "(870,870), (741,741)")
          6 | (6,65535) |      40 | f | (P) = ( "(1000,1000), (871,871)")
(6 줄)
GIST_PAGE_ITEMS_BYTEA (Page Bytea) 레코드를 반환

동일gist_page_items그러나 키 데이터를 원시로 리턴합니다BYTEAblob. 키를 해독하려고 시도하지 않으므로 어떤 인덱스가 관련되어 있는지 알 필요가 없습니다. 예를 들어:

test =# select * from gist_page_items_bytea (get_raw_page ( 'test_gist_idx', 0));
 ItemOffset |   ctid | ItemLen | 죽은 |                                      key_data
------------+-----------+---------+------+-----------------------------------------​-------------------------------------------
          1 | (1,65535) |      40 | f | \ x00000100FFFFF28000000000000C06400000000000000000000000000F03F000000000000F03F
          2 | (2,65535) |      40 | f | \ x00000200FFFFF28000000000000C0740000000000000000000000000E060000000000000E06440
          3 | (3,65535) |      40 | f | \ x00000300FFFFF28000000000000207F4000000000000000000000000000000D074000000000000000000D07440
          4 | (4,65535) |      40 | f | \ X00000400FFFFF28000000000000C0840000000000000000000000000000077F400000000000307F40
          5 | (5,65535) |      40 | f | \ x00000500FFFFF28000000000000F089400000000000000000000000000C8440000000000000000000000000000000000c88440
          6 | (6,65535) |      40 | f | \ x00000600FFFFF2800000000000028F400000000000000000000000000000F889400000000000F88940
          7 | (7,65535) |      40 | f | \ x00000700FFFFF28000000000000408F4000000000000000000000000000000002888F4000000000000000288F40
(7 줄)

F.23.7. 해시 기능#

hash_page_type (page bytea) 텍스트를 반환

hash_page_type주어진 페이지 유형을 반환Hash색인 롤 토토. 예를 들어:

test =# select hash_page_type (get_raw_page ( 'con_hash_index', 0));
 hash_page_type
---------------
 전달
hash_page_stats (page bytea) 레코드를 반환

hash_page_statsa 버킷 또는 오버플로 페이지에 대한 정보를 반환합니다HASH색인. 예를 들어:

test =# select * from hash_page_stats (get_raw_page ( 'con_hash_index', 1));
-[레코드 1] ---+----------
live_items | 407
dead_items | 0
page_size | 8192
free_size | 8
hasho_prevblkno | 4096
hasho_nextblkno | 8474
Hasho_bucket | 0
hasho_flag | 66
hasho_page_id | 65408
hash_page_items (page bytea) 레코드를 반환

hash_page_itemsa 버킷 또는 오버플로 페이지에 저장된 데이터에 대한 정보를 반환합니다HASH색인 롤 토토. 예를 들어:

test =# select * from hash_page_items (get_raw_page ( 'con_hash_index', 1)) 한계 5;
 ItemOffset |   ctid |    데이터
------------+----------+------------
          1 | (899,77) | 1053474816
          2 | (897,29) | 1053474816
          3 | (894,207) | 1053474816
          4 | (892,159) | 1053474816
          5 | (890,111) | 1053474816
hash_bitmap_info (색인 OID, Blkno bigint)를 반환합니다

hash_bitmap_info비트 맵 롤 토토에 특정 오버플로 롤 토토에 대한 비트의 상태가HASH색인. 예를 들어:

test =# select * from hash_bitmap_info ( 'con_hash_index', 2052);
 Bitmapblkno | Bitmapbit | Bitstatus
------------+----------+------------
          65 |         3 | 티
hash_metapage_info (Page Bytea) 레코드를 반환

hash_metapage_infoa 메타 페이지에 저장된 정보를 반환합니다.HASH색인. 예를 들어:

test =# 마술, 버전, ntuples, ffactor, bsize, bmsize, bmshift, bmshift,
테스트-# Maxbucket, Highmask, Lowmask, Ovflpoint, Firstfree, NMAPS, Procid,
테스트-# regexp_replace (spares :: text, '(, 0)*', '')).
test-# regexp_replace (mapp :: text, '(, 0)*', '')))
hash_metapage_info에서 test-# (get_raw_page ( 'con_hash_index', 0));
-[레코드 1] ----------------------------------------------------------------------------------
마술 | 105121344
버전 | 4
ntuples | 500500
ffactor | 40
bsize | 8152
bmsize | 4096
bmshift | 15
Maxbucket | 12512
하이 마스크 | 16383
로우 마스크 | 8191
ovflpoint | 28
1 피리 | 1204
nmaps | 1
Procid | 450
스페어 | 0,0,0,0,0,1,1,1,1,1,1,1,1,4,4,4,45,55,58,59, 508,567,628,704,1193,1202,1204

수정 제출

문서에 올바른 것이 없다면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면