Cognos Greenplum pg_catalog
Я использую отчет Cognos и базу данных Greenplum.
Мой отчет занимает слишком много времени. Итак, я посмотрел на журнал зеленой сливы и обнаружил, что половину времени проводил, обращаясь к pg_catalog. В каталоге я смотрю не на pg_catalog, а на другие таблицы, поэтому я не понимаю, почему Cognos решили взглянуть на таблицу pg_catalog.
Когда я запускаю отчет cognos, я вижу из журнала greenplum, что для некоторых запросов cognos запускает select в pg_catalog перед выполнением запроса.
Почему это?
1 ответ
pg_catalog содержит метаданные о таблицах, столбцах и других объектах базы данных. Я думаю, что ваша проблема в раздутии каталога. По сути, если вам нужно подождать несколько секунд, чтобы вывести список таблиц (используя \ d в psql), вам следует очистить каталог.
Проверьте "Глава 19: Регулярное обслуживание системы" - "Регулярное обслуживание каталога системы" в руководстве администратора GP.
Greenplum рекомендует периодически запускать VACUUM в системном каталоге, чтобы очистить пространство, занимаемое удаленными объектами. Если многочисленные операторы DROP являются частью регулярных операций с базой данных, безопасно и целесообразно запускать процедуру обслуживания системного каталога с VACUUM ежедневно в непиковые часы. Это можно сделать, пока система работает и доступна. В следующем примере сценария выполняется VACUUM системного каталога базы данных Greenplum:
#!/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