gpt4 book ai didi

oracle - 优化 Oracle 实例

转载 作者:行者123 更新时间:2023-12-02 05:42:11 26 4
gpt4 key购买 nike

我正在与一个团队合作,开发一个可在 SQL Server 和 Oracle 上运行的应用程序。

SQL Server 有实例的概念,它可以容纳多个数据库。 Oracle 10g 需要每个数据库一个实例(并且可以允许更多的冗余),因此对于我们运行的每个数据库,我们都有一组完全独立的进程,因此内存使用量更大。

因此,我们开始更多地采用具有单独架构的一个实例。但是,我们仍然希望将单独的客户(或开发机器)数据分开。

我们的大多数实例都是使用本地开发的脚本(例如 Windows 上的 oradim)创建的。

如何减少 Oracle 实例的内存使用要求、占用空间等,以便多个实例可以在一台计算机上安全运行? Linux 还是 Windows 是更好的主机?我们可以通过禁用不需要的额外功能(数据挖掘、Oracle Text 等)来轻松获得 yield 吗?

最佳答案

内存恕我直言对于Oracle性能来说是最重要的。

运行多个数据库意味着保留多组缓存的SQLPL/SQL、系统表的多个数据缓存等。

如果您只是需要将数据分开,您可以为不同的用户创建不同的TABLESPACES。不过,您仍然需要共享LOGFILES

禁用诸如数据挖掘之类的额外功能不会有太大帮助,因为它们在不使用时不会消耗内存。

您当然需要降低任何内存值,但在不查看数据库设计的情况下很难判断应该保留哪些内存值以及需要降低哪些内存值。

作为一个非常不精确的经验法则,如果您有OLTP数据库,即小表和高并发级别,您可能应该牺牲sort_area_sizehash_area_size,但保持 db_block_buffers 尽可能高。

如果您有使用 HASH JOINSMERGE JOINS 的大型表,则需要 sort_area_sizehash_area_size为了实现高效的连接和排序,但您可以减少db_block_buffers,因为无论如何您都无法缓存这些表。

LinuxWindowsOracle 性能方面没有太大差异。不过,LinuxLOCK_SGA 带来了好处。 Windows 也尝试这样做,但可以在内存条件恶劣的情况下进行交换。

关于oracle - 优化 Oracle 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571434/

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