oracle - OracleDB 中 Postgres 的 fsync 设置相当于什么?

标签 oracle oracle19c

我有一个在 CI 管道中运行的 OracleDB 数据库。每次测试运行时都会对其进行设置和拆卸;而且速度太慢了。

由于我不关心完整性,是否可以在不刷新到磁盘的情况下运行 OracleDB?很像 Postgres 的 fsync 设置吗?

最佳答案

我相信COMMIT_WAIT Oracle 参数类似于 PostgreSQL 的 fsync 设置。运行以下命令后,Oracle 将不会等待提交刷新到磁盘:

alter system set commit_wait = nowait;

但根据我对该参数的有限经验,除非您的系统进行了大量的提交,否则它不会显着提高性能。也许您还应该考虑使用 NOARCHIVELOG 模式。 Oracle 仍然会将事务数据写入磁盘,但它至少会停止制作额外的副本:

SQL> shutdown  immediate;
SQL> startup mount
SQL> alter database noarchivelog;
SQL> alter database open;

但即使是这些设置也可能不会显着缩短管理任务时间。 Oracle 实例永远不会是小型、轻量级的进程。最接近的是 Multi-Tenancy 选项,它可以快速创建可插入数据库。但该选项需要设置一个中央容器数据库,这可能是您首先要避免的。

您能否提供有关 CI 管道的更多信息?可能有一些特定于您的环境的优化。例如,我认为 Oracle 有一些代码支持 Docker(尽管我不熟悉这些选项)。

关于oracle - OracleDB 中 Postgres 的 fsync 设置相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66187820/

相关文章:

database - Oracle 中的约束/外键信息

database - Oracle DB 从 12c 升级到 19c 对现有 SQL、PL/SQL 脚本和数据模型有何影响?

xml - LPX-00209 : PI names starting with XML are reserved when parsing soap response

java - Oracle 和 MS SQL Server 之间的桥梁

oracle - SQLDeveloper 使用超过 100MB 的 PGA

Oracle 19c::无法为指定用户设置 ACL

oracle - 如何使用新创建的 LISTENER 注册可插拔数据库 (PDB)

java - loadjava 不在 Oracle Instant Client 19c 中 - 我有哪些选项?

database - 数据阶段服务器上文件的作业参数

linux - Oracle Forms Builder Ubuntu 安装问题