gpt4 book ai didi

database - Oracle 对大量写入和少量读取的建议

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:36 25 4
gpt4 key购买 nike

是否有一些关于如何调整 oracle 以执行大量插入和少量读取的在线通用指南?

以下所有答案都是非常好的建议。我必须澄清以下几点。我正在使用 10g,这是我们使用 Oracle 的绝对要求。我也对用于调优的 oracle 实例参数更感兴趣(可能是一些不同的锁定策略)。

最佳答案

假设您想要执行过多的插入操作,因此您只想忽略所有其他类型的操作,只是为了顺利完成这些插入操作。

首先,您是否完全排除了其他类型的数据库?有像行业数据库这样的系统可以很好地处理大量插入,通常用于接收和存储来自工厂环境中测量某物的设备的数据。 Oracle 是一种关系数据库,它可能不是满足您需求的正确软件类型。

话虽如此,让我们假设您可以、将要或应该使用 Oracle。您需要做的第一件事是考虑做出此假设所需的所有各种类型的数据。如果它们都是关于同一类型的数据,则您需要 1 个表,并且在插入方面需要精简和平均。

最佳方法是执行以下操作:

  1. 根本不要在这个表上添加任何索引,如果你需要一个主键,那是你唯一想要的索引
  2. 如果您需要对该表进行读取,请考虑使用一个带有索引的影子表,您可以对其进行读取、查找和聚合。如果这不需要毫秒更新,请考虑使用主表中的数据更新它的定期批处理作业。这将尽可能少地干扰带有读锁的主表
  3. 确保您的服务器有快速磁盘。事务性写入操作通常会在某个时刻涉及磁盘,因此请尽可能确保这是一个小瓶颈。
  4. 如果您的应用程序从许多传入源收集数据,请考虑在数据库前面添加一个层,以将并发连接数保持在最低限度,从而将对该表的事务处理保持在最低限度。如果您在 Oracle 数据库的同一页上获得大量写锁,最终您的性能将受到影响。

如果可以拆分数据,请考虑将其拆分为存储在不同物理磁盘上的方式。这样,磁盘 I/O 问题就不会是跨数据类型的,只会影响一种类型的数据。

在频谱的另一端,您有一个非规范化表,其中包含许多优化的索引以在查找和更新之间取得平衡,您需要找到一些中间方法来获得您想要的性能。

关于database - Oracle 对大量写入和少量读取的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/194352/

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