Why is Oracle so much slower for small atomic inserts compared to Postgres? And what defaults can I change to remedy this? If I create a brand new database from a Docker image and run a fresh database with the default settings.
CREATE TABLE &quot;TEST_TABLE&quot; ( 
    &quot;ID&quot; VARCHAR2(32 BYTE) NOT NULL ENABLE, 
    &quot;CREATED&quot; TIMESTAMP (6) DEFAULT NULL NOT NULL ENABLE, 
    &quot;REFERENCE&quot; NVARCHAR2(500),
    PRIMARY KEY(ID)
);

This insert statement takes between 15ms and 30ms to complete (after being run a couple of times).
INSERT INTO test_table VALUES ('1', '10-SEP-02 14.10.10.123000000', 'hello world');

However if I run the same query in Postgres it takes 2-3ms to complete (after being run a couple of times).
What defaults in Oracle cause such poor insert performance?
SQL&gt; CREATE TABLE &quot;TEST_TABLE&quot; ( 
    &quot;ID&quot; VARCHAR2(32 BYTE) NOT NULL ENABLE, 
    &quot;CREATED&quot; TIMESTAMP (6) DEFAULT NULL NOT NULL ENABLE, 
    &quot;REFERENCE&quot; NVARCHAR2(500),
    PRIMARY KEY(ID)
);

Table created.

SQL&gt;

SQL&gt; set timing on
SQL&gt; INSERT INTO test_table VALUES ('1', systimestamp, 'hello world');

1 row created.

Elapsed: 00:00:00.00
SQL&gt; commit;

Commit complete.

Elapsed: 00:00:00.00

SQL&gt; select executions, elapsed_time from v$sql where sql_text = 'INSERT INTO test_table VALUES (''1'', systimestamp, ''hello world'')';

EXECUTIONS ELAPSED_TIME
---------- ------------
         1         1121

Elapsed: 00:00:00.09
SQL&gt;

The insert took 1121 microseconds = 1.121 milliseconds, on the first try, with default settings.
SQL&gt; INSERT INTO test_table VALUES ('2', systimestamp, 'hello world');

1 row created.

Elapsed: 00:00:00.00
SQL&gt; commit;

Commit complete.

Elapsed: 00:00:00.00
SQL&gt; select executions, elapsed_time from v$sql where sql_text = 'INSERT INTO test_table VALUES (''2'', systimestamp, ''hello world'')';

EXECUTIONS ELAPSED_TIME
---------- ------------
         1          780

Elapsed: 00:00:00.09

Even quicker on additional attempts.
Problem is not with the database, but the software/hardware environment around it.