AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1831
Accepted
Joshua
Joshua
Asked: 2009-05-01 14:52:08 +0800 CST2009-05-01 14:52:08 +0800 CST 2009-05-01 14:52:08 +0800 CST

如何最好地优化 Oracle 数据库的写入?

  • 772

如何在不影响读取的情况下最大化写入性能?

performance oracle
  • 4 4 个回答
  • 3917 Views

4 个回答

  • Voted
  1. Mark Regensberg
    2009-05-02T00:18:50+08:002009-05-02T00:18:50+08:00

    从不想触摸配置的 POV - 检查您的索引。如果您正在写入索引过多的表,请记住每次写入一行时,索引都会被更改。更少的索引,更少的物理IO。

    这显然会影响读取。

    如果您有时间和容量,我发现将常用写入的表分离到特定的表空间并确保/那些表空间存储在单独的 RAID 通道上也有帮助,但这取决于您使用的硬件并添加了一堆其他考虑因素。

    如果您确实有时间思考这一点,那么请购买并阅读 Cary Millsaps 的“优化 Oracle 性能”——它已经过时(完全取决于您使用的 Oracle 版本),但它是经典之作。

    • 3
  2. Best Answer
    Nick Pierpoint
    2009-05-06T02:04:50+08:002009-05-06T02:04:50+08:00

    一个好的开始是遵循 Oracle 的 SAME 方法 - Stripe and Mirror Everything。这为您提供了一个良好的基础,您可以从中添加更多更具体的改进。

    相同的方法在以下 PDF 中:

    http://www.oracle.com/technology/deploy/availability/pdf/oow2000_sane.pdf

    Ask Tom 上有一个很好的讨论:

    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:4433784236146

    SAME 的主要驱动力之一是易于管理。它将许多性能考虑因素传递给操作系统和底层存储层。这个想法是,您的表空间文件已经分布在存储阵列中的无数磁盘上,因此您在此之上所做的任何摆弄都无济于事。然而,一如既往,魔鬼在细节中。将存储层视为黑匣子很诱人,但您确实需要了解正在发生的事情并知道每个表空间文件下的内容。

    • 3
  3. tsilb
    2009-05-01T18:49:20+08:002009-05-01T18:49:20+08:00

    将其设置在集群中,并让您的应用程序指向特定节点进行写入;然后从集群本身读取。

    • 1
  4. Guy Harrison
    2009-06-07T03:34:34+08:002009-06-07T03:34:34+08:00

    实施 SAME - 如上一个答案中所建议的那样对所有内容进行条带化和镜像 - 是一个很好的默认策略。特别是如果您担心写入性能,则不惜一切代价避免使用 RAID5 - 它会在保持奇偶校验信息的同时产生 4 倍的写入开销。具有大内存缓存的 RAID5 阵列可能会暂时隐藏这种开销,但对于长时间的写入,最终会感受到 RAID 5 的损失。

    在优化写入 IO 时需要考虑很多事情,但这里还有一些需要考虑的事情:

    • 确保条带中有足够的磁盘设备来支持 IO 速率。您需要在条带中放置足够的磁盘以支持每秒所需的总 IO,而不仅仅是要存储的 GB 数。磁盘仅在部分充满数据时提供更好的响应时间——磁盘的外部可以比内部更快地传递数据。因此,一般来说,您希望在您的条带中拥有稀疏的磁盘。

    • 避免 IO 比优化 IO 更好。可避免的写入 IO 的最大来源是用于排序和散列操作的临时段 IO。正确调整 PGA 聚合目标的大小是避免这种情况的最佳方法。

    • 确保您的所有索引都服务于一个有效的目的——加速查询或强制执行主键或外键。索引维护往往是写 IO 的最大来源,所以不要有任何多余的索引。

    • 创建大量的重做日志。这有助于避免在数据文件检查点完成之前日志循环时可能发生的日志切换开销和数据库停顿。您可能还希望将重做日志放在专用设备或专用细粒度条带上。

    • 使用异步 IO。如果您的数据文件位于文件系统上(例如,不是 RAW 或 ASM),则将 FILESYSTEMIO_OPTIONS 设置为 AYNCH 或 SETALL。SETALL 实现直接 IO 和异步 IO,这通常有助于写入,但可能会减慢读取速度。

    • 如果您准备在 COMMIT 上冒险,您可以更改 COMMIT_WRITE (10g) 或 COMMIT_WAIT 和 COMMIT_LOGGING 以延迟或批处理在您发出提交时发生的 IO。不过,请确保您了解其中的含义;如果这样做,您可能会在数据库发生故障时丢失一些事务。

    • 如果您有权访问应用程序代码,请确保正在使用数组插入,并且 - 可能 - 使用 APPEND 提示使用直接路径插入。

    • 1

相关问题

  • 为 Sql Server 构建最佳定制机器 [关闭]

  • ext3 文件系统性能调优:监控哪些指标

  • IIS 6.0 (Windows Server 2003) 上的 HTTP 压缩

  • 上线的第一天:如何不杀死您的网站

  • IIS 优化

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve