gpt4 book ai didi

database - 按日期和 PK 分区

转载 作者:太空狗 更新时间:2023-10-30 02:00:25 24 4
gpt4 key购买 nike

我正在设计一个新的实验室数据库。

我的主数据表将至少有 id (PK NUMBER)created_on (DATE)。此外,对于任何两个条目,具有较高 id 的条目将具有较晚的 created_on 日期。

我计划按 created_on 进行分区,以提高最近输入数据的性能。由于列一起增加,该表也将按 id 隐式分区。 Oracle 不会知道按 id 的隐含分区以利用 id 上的表连接分区。

两个问题:

  1. 如何强制两列一起增加?

  2. 如何利用表连接的这种隐式分区?

最佳答案

在我看来,分区的决定应该更多地基于表维护事件(清除、归档等)的需要而不是性能。在你的情况下,我猜你可能会在一个日期范围内对样本执行索引范围扫描,因此请确保日期索引也在本地(而不是全局)分区。如果截断分区,这也将消除重建索引的需要。我还猜测 PK 上的连接将使用 rowid 查找,因此这将在索引范围扫描之后发生,并且分区无法影响这一点。

[编辑]

关于关联 PK 和 CREATED_ON 列,我使用了几个系统,这些系统根据以 YYYYMMDD 为前缀的序列构造数字键,并且效果很好。你必须:

  • 自由估计你每天都会有的 sample

  • 定义一个序列最大值,然后循环回到0

  • 有一个返回 YYYYMMDD 的函数|| {序列值左填充
    零到适当的固定长度},在需要 key 时从触发器或应用程序代码中调用

有些人不同意在 key 中嵌入含义,但在实践中,查看样本 ID 并了解它何时被处理会很有用

关于database - 按日期和 PK 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com