首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用json的Oracle单表与使用联接的一组表

使用json的Oracle单表与使用联接的一组表
EN

Database Administration用户
提问于 2020-06-25 11:33:15
回答 1查看 213关注 0票数 0

我正在建立一个报告解决方案。数据将存储在Oracle数据库中。我希望接近数十亿的数据集,因为我必须保存1年的数据。在设计数据库模式时,我遇到了单表或一组表的问题。

  1. 单个表的格式为(ID、DATETTIME、JSON ),该表将所有数据转储为json列中的JSON。这将避免任何连接也迎合未来的事件格式变化。
  2. 一组表( 4-6)数据在它们上下潜。查询将使用多个联接和多个联合。格式将很难改变。

什么是更好的表现方式。对于大型数据集,json对联接的效率如何?

EN

回答 1

Database Administration用户

发布于 2020-07-14 19:10:17

这在一定程度上取决于您是否需要解析该JSON,比如WHERE子句中的JSON,或者GROUP等等.

如果它仍然是一个不露面的blob,那么将它保留为选项#1可能会更快;但是请记住,很少会出现这种情况--您可能会意外地被要求在某个时候报告/查询JSON!

我不知道Oracle,但在Microsoft SQL Server中,联合在加入时往往表现不佳;它们作为独立查询似乎很好,但一旦成为子查询,情况似乎就会减慢,除非您执行类似于物化视图的操作。

因此,虽然我个人更喜欢选项2,但是性能可能会因为一个超过100万行的大数据集而陷入困境。您可以不使用UNION,而是将记录放在同一个表中,但使用类型列来区分它们吗?

  1. 您的“大数据集”中有多少行(一行有多宽)?
  2. 您能暂时获得一个测试环境并在负载测试下尝试这两个选项吗?
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/269855

复制
相关文章

相似问题

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