Microstrategy / Oracle - 性能下降

时间:2014-03-04 15:32:07

标签: oracle microstrategy

我们有一个Microstrategy / Oracle设置,其中有一个包含50亿行(即50,000,000,000+行)的事实表。

系统性能非常不稳定;有时它运行正常,但在其他时候它运行很慢,即简单的报告需要20分钟才能运行!

最奇怪的部分:如果我们在报告中添加更多约束(即更多where子句),最终会返回LESS数据,报告实际上会进一步减慢。

我们能够从Microstrategy中获取SQL,我们发现SQL本身运行速度也很慢。但是,由于SQL是由Microstrategy生成的,因此我们无法控制SQL。

关于我们应该在哪里看的任何想法?

4 个答案:

答案 0 :(得分:2)

查看SQL并查看是否可以添加更多有用的索引。检查查询是否正在使用您认为应该是的索引。

答案 1 :(得分:1)

检查过滤的每个列是否都有索引。 请记住更新所涉及的所有表的统计信息:如此大的表非常重要。 查看查询计划并检查大表上没有表扫描(您可以在小型查找表上接受它们)

答案 2 :(得分:0)

ODBC驱动程序中的

EnableDescribeParam=1

答案 3 :(得分:-1)

如果您的环境与我的环境相似,那么我将提供的内容可能有助于您的请求,如果不是它可能会帮助他人。我们也有一个这样的表,经过几周的尝试添加这个索引或该索引后,最终解决方案是在表和索引级别上并行设置。

报告运行时间25分钟 alter table TABLE_NAME parallel(degree 4 instances 4); alter index INDEX_NAME parallel(degree 4 instances 4);

报告运行时间6秒。

表上有并行设置的标准,例如必须大于1G,但是使用并行线程来获得最佳时间。