我有一个表财务(列:日期,月份,季度,amount_usd,col1,col2,col3)。
简单查询......
select sum(amount_usd) from finance
group by date
......需要7秒
select sum(amount_usd) from finance
group by month
......需要6秒
select sum(amount_usd) from finance
group by quarter
......需要5秒
所以我想到了数据仓库
我创建了时间维度和层次结构
现在我被卡住了......
我的事实表是什么? 以及如何从事实表中查询数据?
这可能是一个非常基本的问题。但我是新手。
由于
答案 0 :(得分:6)
"所以我的简单查询是花时间并考虑拥有数据 仓库概念......"
七秒不慢。至少,不需要数据仓库"慢。数据仓库是一种战略性(通常是企业级)环境,而不是一种调整技术。
但是,我同意,等待屏幕刷新的OLTP用户可能会有点恼火。您需要做的是调整查询。你说你有索引:但如果你总结整个财务表,那么你可能不想使用索引。如果您拥有Enterprise Edition许可证和多个具有备用容量的CPU,那么并行查询可能是更好的主意。
如果您每天多次运行这些财务查询,您可以从预先聚合中获得一些好处,但似乎不太可能减少经过的时间来证明维护物化视图的开销。