2012-07-24 7 views
1

Cognos 보고서 및 Greenplum 데이터베이스를 사용하고 있습니다.cognos greenplum pg_catalog

보고서가 너무 오래 실행됩니다. 그래서 나는 녹색 매화 로그를보고, pg_catalog를 질의하는 데 소요 된 시간의 절반을 발견합니다. 카탈로그에서 pg_catalog를 보지 않고 다른 테이블을보고 있으므로 cognos가 pg_catalog 테이블을 보는 이유를 이해할 수 없습니다.

나는 Cognos 보고서를 실행할 때 greenplum 로그에서 일부 쿼리에 대해 cognos가 쿼리를 실행하기 전에 pg_catalog를 선택하여 실행할 수 있음을 알 수 있습니다.

왜 이런가요?

+0

내가 그린 플럼에 익숙하지 않아요하지만 pg_catalog 테이블 메타 데이터를 포함하는 시스템 카탈로그 같은 소리 : 다음 예제 스크립트는 그린 플럼 데이터베이스 시스템 카탈로그의 VACUUM 을 수행합니다. 발급되는 쿼리 유형에 따라 IBM Cognos는 때로는 쿼리를 처리하는 방법을 결정하는 데 도움이되도록 데이터베이스에 메타 데이터 요청을 수행합니다. 보고서를 만들었을 때 Framework Manager 모델/패키지를 기반으로 했습니까? 아니면 보고서에서 사용자 지정 SQL을 사용하고 있습니까? – chsh

답변

0

pg_catalog에는 테이블, 열 및 기타 데이터베이스 개체에 대한 메타 데이터가 포함되어 있습니다. 귀하의 문제는 카탈로그가 부풀어 있다고 생각합니다. 기본적으로 테이블을 나열하기 위해 psql에서 \ d를 사용하는 데 몇 초 정도 기다려야하는 경우 카탈로그를 비우는 것이 좋습니다.

GP 관리자 안내서의 "19 장 : 정기 시스템 유지 보수 작업"- "일반 시스템 카탈로그 유지 관리"를 확인하십시오.

그린 플럼은 주기적으로 삭제 된 개체가 차지하는 공간을 확보하기 위해 시스템 카탈로그에 VACUUM를 실행하는 것이 좋습니다. 수많은 DROP 문이 정규 데이터베이스 작업의 일부인 경우 이고 시스템 카탈로그 유지 관리 절차는 VACUUM으로 매일 사용량이 많지 않은 시간에 실행하는 것이 적합합니다. 이 시스템은 시스템이 실행 중일 때 일 때 수행 할 수 있습니다.

#!/bin/bash 
DBNAME="<database_name>" 
VCOMMAND="VACUUM ANALYZE" 
psql -tc "select '$VCOMMAND' || ' pg_catalog.' || relname || ';' from pg_class a,pg_namespace b where a.relnamespace=b.oid and b.nspname= 'pg_catalog' and a.relkind='r'" $DBNAME | psql -a $DBNAME