sql - 在具有相同架构的表上使用视图
问题描述
我们正在使用多个表来按月保存实体的数据。意思是,我们的表名是 xx01、xx02...xx12。除了名称之外,所有这些表的表定义都相同。我们这样做是为了在我们认为它很旧时可以丢弃一张桌子。例如:在 12 月删除 2 月的桌子。桌子掉落基本上是免费的。我的问题是,我可以创建一个可以从这些表中读取的视图吗?视图应该能够从这些表中的任何一个中获取数据,可能从多个表中获取范围查询。数据库:甲骨文 12c。PS:我们不能有月份的列并对其进行分区,因为我们必须根据其他列进行分区和子分区以提高读取性能。
解决方案
我认为可能有更好的方法,它可以在 Oracle 上运行:你应该只有一个表 xx,其中有一列用于月(或月/年)-但在该月(或月/年)将其设为分区表年)栏。
Oracle 将做的是为分区列的每个值创建一个单独的存储区域,如果您的查询包含该分区列的值(或范围),它将足够聪明,只查看适当的存储区域.
如果您决定不再保留特定月份(或月/年),您可以告诉 Oracle 删除该分区,同时保持表的其余部分不变。
推荐阅读
- python - Colab 中没有名为“util”的模块
- django - Django Rest Framework + React JWT 身份验证,403 Forbidden on protected views
- c++ - glTexSubImage2D 将二进制数组上传到 Compute Shader 时生成 GL_INVALID_ENUM
- mysql - 如何将null存储到mysql日期列中
- tfs - 从 TFS 2018 获取 Code Review 评论历史记录
- node.js - Prometheus auto-discovery can't get NodeJS active services on K8s
- reactjs - ReactJS 错误:无效的钩子调用。Hooks 只能在函数组件的主体内部调用
- mysql - Mysql trigger to enter the desired id
- json - 为什么 Kotlin 对象类到 json 对象为空?
- javascript - Firebase cloud function delays when calling "itself", through another service