그래프 뷰#
pg_catalog의 뷰 두 개가 oid와 레이블 id를 이름으로 풀어 그래프 카탈로그를 읽기 좋은 형태로
보여 줍니다. 둘 다 평범한 뷰이므로 조인하고 걸러 낼 수 있습니다.
ag_property_indexes#
속성 인덱스마다 한 행이며, 그것을 다시 만들 문장이 함께 있습니다.
컬럼 |
타입 |
설명 |
|---|---|---|
|
|
인덱스가 속한 그래프입니다. |
|
|
인덱스가 걸린 레이블입니다. |
|
|
인덱스의 이름입니다. |
|
|
테이블스페이스이며, 기본값이면 null입니다. |
|
|
인덱스가 고유한지 여부입니다. |
|
|
인덱스를 다시 만드는 |
|
|
인덱스를 소유한 롤입니다. |
|
|
인덱스의 크기이며 이미 서식이 갖춰져 있습니다. |
|
|
인덱스에 달린 주석이 있으면 그것입니다. |
예제 데이터셋에는 속성 인덱스가 없으므로, 볼 것을 만들기 위해 두 개를 만듭니다:
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 대신 이름이 들어 있습니다.
컬럼 |
타입 |
설명 |
|---|---|---|
|
|
그래프입니다. |
|
|
간선 시작 정점의 레이블입니다. |
|
|
간선 레이블입니다. |
|
|
간선 끝 정점의 레이블입니다. |
|
|
그 모양의 간선이 몇 개인지입니다. |
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를 확인하십시오.