Oracle performance issue with massive inserts and truncations (AWR included)

I use Oracle to synchronize events between two nodes of my application server (it doesn't matter why / if this is the best way / etc. This is a given).

To do this, I use the "events" table, in which one node ("active") writes new events, and the other reads node ("passive"). The table looks like this:

UUID Event (UUID) || Event ID (Long) || Event data (multiple columns of different types)

An event identifier is a number that is constantly increasing (a managed application, not a sequence), which means revising the internal model after applying the event data. The UUID event has a unique limitation. I have one event identifier index to facilitate SQL selection - "Select ... where Event_ID> XXX order by Event_ID", where XXX is the internal revision number of the passive node. From time to time I truncate the table (using the "truncated reuse storage").
[In fact, I use three of these tables in a circular manner, so I could always truncate the one I’m going to write to my passive node, it can catch up with it]].

After hours of insertion and truncation, where everything is fine, I start to get a lot of “noise” from the database, and the response time drops sharply. This can last for an hour or two (or even more), then suddenly stops, and the response time returns to normal. The AWR report points to the truncate statement and a bit to the insert statement. I suspect something is happening with DBWR, but I can’t pinpoint it. Note that this performance degradation occurs even when the secondary node (the one that runs the SELECT statements) is turned off - so it is clean insert / truncate. Note2: This issue is NOT reproducible in MSSQL.

: ? , ? ( , ).

1: . , , .

2: (), () - http://pastehtml.com/view/1eirn20.html

3: AWR diff http://pastehtml.com/view/1eirn20.html

4: . -, ( ik_zelf!). - . .

+3
1

awr , io . . , , , , . / , .

+2

All Articles