그래프 뷰#

pg_catalog의 뷰 두 개가 oid와 레이블 id를 이름으로 풀어 그래프 카탈로그를 읽기 좋은 형태로 보여 줍니다. 둘 다 평범한 뷰이므로 조인하고 걸러 낼 수 있습니다.

ag_property_indexes#

속성 인덱스마다 한 행이며, 그것을 다시 만들 문장이 함께 있습니다.

컬럼

타입

설명

graphname

name

인덱스가 속한 그래프입니다.

labelname

name

인덱스가 걸린 레이블입니다.

indexname

name

인덱스의 이름입니다.

tablespace

name

테이블스페이스이며, 기본값이면 null입니다.

unique

boolean

인덱스가 고유한지 여부입니다.

indexdef

text

인덱스를 다시 만드는 CREATE PROPERTY INDEX 문장입니다.

owner

name

인덱스를 소유한 롤입니다.

size

text

인덱스의 크기이며 이미 서식이 갖춰져 있습니다.

description

text

인덱스에 달린 주석이 있으면 그것입니다.

예제 데이터셋에는 속성 인덱스가 없으므로, 볼 것을 만들기 위해 두 개를 만듭니다:

CREATE PROPERTY INDEX ON movie (title);
CREATE PROPERTY INDEX ON person (name);
SELECT labelname, indexname, indexdef, size
FROM pg_catalog.ag_property_indexes
WHERE graphname = 'moviekb' ORDER BY labelname, indexname;
 labelname |    indexname    |                              indexdef                              |  size
-----------+-----------------+--------------------------------------------------------------------+-------
 movie     | movie_title_idx | CREATE PROPERTY INDEX movie_title_idx ON movie USING btree (title) | 16 kB
 person    | person_name_idx | CREATE PROPERTY INDEX person_name_idx ON person USING btree (name) | 16 kB

다 보았으면 DROP PROPERTY INDEX movie_title_idx; 로 다시 지우십시오.

쓸모 있는 것은 indexdef 컬럼입니다. 서버가 만든 표현식 인덱스가 아니라 속성 수준의 문장을 돌려주는데, 스키마를 스크립트로 만들 때 원하는 형태가 그것입니다. agens 클라이언트의 \dGi도 같은 정보를 출력합니다.

이 뷰는 properties에 대한 인덱스뿐 아니라 승격된 컬럼에 대한 인덱스도 나열합니다. 그러므로 「이 레이블에는 무엇이 인덱싱돼 있는가」를 볼 곳은 여기 하나입니다.

ag_graphmeta_view#

그래프에 실제로 나타나는 간선 모양마다 한 행이며, 레이블 id 대신 이름이 들어 있습니다.

컬럼

타입

설명

graphname

name

그래프입니다.

start

name

간선 시작 정점의 레이블입니다.

edge

name

간선 레이블입니다.

end

name

간선 끝 정점의 레이블입니다.

edgecount

bigint

그 모양의 간선이 몇 개인지입니다.

SELECT * FROM pg_catalog.ag_graphmeta_view WHERE graphname = 'moviekb';
 graphname | start  |    edge    |  end  | edgecount
-----------+--------+------------+-------+-----------
 moviekb   | movie  | related_to | movie |        11
 moviekb   | person | directed   | movie |        21
 moviekb   | person | acted_in   | movie |        25

이것이 AgensGraph가 줄 수 있는, 그래프의 실제 모양에 대한 가장 또렷한 그림입니다. 쿼리를 튜닝하기 전에 읽으십시오. 어떤 순회가 존재하고 각각이 얼마나 큰지 알려 줍니다. 플래너도 같은 행을 씁니다.

메타데이터를 수집하지 않았다면 이 뷰는 비어 있습니다. auto_gather_graphmeta와 regather_graphmeta()는 그래프 메타데이터를 참고하고, 수치가 이상해 보이면 ag_graph.graphmeta_valid를 확인하십시오.