在 Oracle 11g DBMS 上,我们有一个包含约 100 列的约 5000 万条数据记录的平面表。主要出于性能原因制作了一个表。
有多个客户端应用程序对该表执行不同的选择 SQL 查询,此外它们可以异步侦听来自该表的更新。
问题:
主要问题 - 一些 sql 查询的工作非常缓慢 - 准确地说,最多 8 分钟。问题是 SQL 查询可以是任意的,这取决于客户端。Oracle-hints 不是解决方案。此外,在某些情况下,Oracle 优化器会做出错误的估计或数据库索引会降低性能。关系数据库在这里很烂。
要求:
- 查询必须基于标准 SQL。
- 显着提高了从该表执行几乎所有选择查询的速度。
- 该解决方案必须在客户端和数据数量方面具有可扩展性。
- 该解决方案应该简单且具有成本效益。
问题:
您推荐什么解决方案/架构来实现上述要求?我们可能会考虑不同的非关系数据库或内存缓存,开发我们自己的解决方案,无论如何。