cognos greenplum pg_catalog

Posted

技术标签:

【中文标题】cognos greenplum pg_catalog【英文标题】: 【发布时间】:2012-07-24 15:46:16 【问题描述】:

我正在使用 Cognos 报告和 Greenplum 数据库。

我的报告运行时间过长。所以我查看了绿梅日志,发现查询 pg_catalog 的时间有一半。在目录中,我不是在查看 pg_catalog 而是在其他表上,所以我不明白为什么 cognos 决定查看 pg_catalog 表。

当我运行 cognos 报告时,我可以从 greenplum 日志中看到,对于某些查询,cognos 在运行查询之前在 pg_catalog 上运行 select。

这是为什么?

【问题讨论】:

我对 Greenplum 不熟悉,但 pg_catalog 表听起来像是包含元数据的系统目录。根据发出的查询类型,Cognos 有时会向数据库发出元数据请求,以帮助决定如何处理查询。当您制作报告时,它是基于 Framework Manager 模型/包,还是您在报告中使用自定义 SQL? 【参考方案1】:

pg_catalog 包含有关表、列和其他数据库对象的元数据。 我认为您的问题是目录膨胀。基本上,如果您需要等待几秒钟来列出表(在 psql 中使用 \d),那么您应该清理您的目录。

查看 GP 管理指南中的“第 19 章:日常系统维护任务”-“常规系统目录维护”。

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

【讨论】:

以上是关于cognos greenplum pg_catalog的主要内容,如果未能解决你的问题,请参考以下文章

我用cognos做了很多报表,请问如何备份

关于cognos报表的问题

“Cognos TM1”和“Cognos 10 BI”之间的区别

有对IBM的cognos用得比较多的神人吗

cognos可以做自定义报表吗

Cognos CFG-ERR-0103 无法启动 IBM Cognos 服务