许多客户都遇到数据仓库应用程序的性能问题。在某些情况下,Oracle Analytics 生成的 SQL 查询比较复杂,无法进行分析。本主题提供了一些准则,说明如何分析和最大程度减少可能由 Oracle Analytics 生成的 SQL 查询引起的性能问题。
本主题未涵盖因网络、浏览器或报表演示问题导致的性能问题。
分析 Oracle Analytics 的查询日志(需要使用日志级别 3)
有关如何查找此日志或了解相关内容的信息,请参见收集和分析查询日志。
分析物理 SQL 查询
SELECT
子句中并且未应用任何筛选器(真正的筛选器,不是联接条件)的表。REPORT_AGGREGATE
, count(distinct)...
)、选择步骤、报表中的子查询、设置运算符 (UNION
)、总计、小计、多个视图等。分析执行计划
查看并改进数据模型以减少读取的数据量
例如,如果用户主要选择当前年、季度或月的数据,可以将事实拆分为两个表:当前和档案。还可以在 Oracle 数据库上使用分区。
读取的数据量并不仅仅取决于每个表中的行数。表的量还取决于表中列的数量和大小。例如,您可以将一个包含 500 列的大表拆分为两个表;一个表中包含最常用的 50 列,另一个表中包含很少使用的其余 450 列。
Oracle Analytics 中的许多性能问题都源自设计不佳,因为这会导致生成的 SQL 查询不是最优的。您可以通过修改设计来改进 Oracle Analytics 生成的 SQL 查询。这不仅会对报表的性能而且还会对数据库中使用的资源量产生巨大影响。