首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle多模式聚合实时视图

Oracle多模式聚合实时视图
EN

Stack Overflow用户
提问于 2009-06-18 15:26:20
回答 3查看 1.9K关注 0票数 2

全,

希望获得关于Oracle设计决策的一些指导,我目前正试图评估:

问题

我在同一个oracle服务器上有三个不同的模式中的数据。我希望构建一个应用程序,该应用程序将显示来自所有三个模式的数据,但是所显示的数据将基于应用于全局数据的实时排序和优先级规则(即:基于应用的优先级权重,我可以从三个模式中的任何一个中提取数据)。

暂定解决方案

在DB中创建一个视图,该视图维护到三个模式中相关列的逻辑链接,编写一个接受参数化优先级权重的存储过程。应用程序随后调用存储过程从视图中选择“优先级”行,然后根据返回的行直接查询关联模式以获得其他数据。

我担心在执行的每个查询上数据被排序/排序的性能,但无法找到绕过这一问题的方法,因为优先级规则将经常更改。我们讨论的是每一个模式有2-3百万行的数据集。

是否有人对如何对数据提供聚合和排序视图有其他建议?

EN

回答 3

Stack Overflow用户

发布于 2009-06-18 15:33:21

从多个模式(甚至多数据库)查询并不是什么大事,即使在同一个查询中也是如此。只需在表名前面加上您感兴趣的模式,如

代码语言:javascript
运行
复制
SELECT SOMETHING
FROM
  SCHEMA1.SOME_TABLE ST1, SCHEMA2.SOME_TABLE ST2
WHERE ST1.PK_FIELD = ST2.PK_FIELD

如果表演成为问题,那就成了一个大话题.优化的查询计划、索引和数据库连接方法都可以发挥作用。想到的一件事是,如果它不必是实时的,那么您可以使用物化视图(又名“快照”)将数据缓存在一个地方。然后,您可以以合理的性能对此进行查询。

只需将快照设置为按适合您的需要的间隔刷新即可。

票数 1
EN

Stack Overflow用户

发布于 2009-08-19 22:32:57

实际上,数据来自3种模式并不重要。重要的是要知道数据变化的频率、标准更改的频率以及查询的频率。

如果有一组有限的标准(即,数据将以有限的方式查看),并且每隔几天就会改变一次,并且会被疯狂地查询,那么您可能应该查看物化视图。

如果条件几乎是无限的,那么创建物化视图是没有意义的,因为它们不太可能被重用。如果标准本身变化非常频繁,那么物化视图中的数据在这种情况下也不会有帮助。

另一个尚未回答的问题是源数据更新的频率,以及拥有最新信息的重要性。频繁更新的源日可能意味着物化视图会在一段时间内变得“陈旧”,或者您可能会花费大量时间来刷新物化视图,以保持数据“新鲜”。

老实说,只要有足够的硬件,2300万张记录对甲骨文来说就不算什么了。在尝试花哨(物化)视图之前,我可能会先对简单的动态查询进行基准测试。

票数 0
EN

Stack Overflow用户

发布于 2009-08-20 08:47:04

正如其他人所说的,在Oracle中查询几百万行并不是一个真正的问题,但这取决于您执行的频率--每十分之一秒可能会在db服务器上造成一些负载!

如果没有业务需求的更多细节和良好的数据模型,就很难提供良好的性能想法。它通常归结为想出一个理论,然后对你的数据库进行尝试,并访问如果它是“足够快”。

也值得你退后一步,问问自己,结果需要有多准确。该业务是否确实需要此查询的确切值,还是可以接受良好的估计值?

汤姆·凯特(问起汤姆的名声)在这些领域总是有一些有趣的想法(和实际事实)。本文描述了生成一个适当的动态搜索查询--但是Tom指出,当您查询Google时,它从不试图获得查询的确切点击次数--它会给您一个猜测。。如果您能够应用一个很好的估计,那么您就可以真正地提高查询性能的时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1013351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档