13. 09. 2018.

Bash performance tuning by example – How to delete 1 million files from file system, and how to do that fast?

In this article I’ll show my approach to solve real world performance problem by using bash scripting language.   Problem statement is: How to delete 1 million files from file system, and how to do that fast?   File system maintenance is important aspect of sysadmin job. It’s not only important to maintain file system, […]

06. 09. 2018.

Performance tuning by using optimistic instead of pessimistic locking – Part 2

In the previous blog I described how to implement optimistic locking logic by using ORA_HASH function call. Here I’ll explore another option that I frequently use – last time when the row has been changed. Let’s create test table by using DEPT table as a base with one additional column – MOD_TIME. For MOD_TIME column […]

24. 08. 2018.

Performance tuning by using optimistic instead of pessimistic locking

Even though Oracle Db started with optimistic locking many years back, old fashion programming style can still be observed too often. In this article I’ll explain why you should avoid using pessimistic locking as mach as possible, and will show one of the alternative way to do the same task by using optimistic locking. I’ll […]

28. 07. 2018.

Supplemental logging – when to use it (and when not)

Supplemental logging feature along with streaming and CDC (change data capture) is available for a long time and is used mainly as one of the integration options especially for loading data from transactional (OLTP) into DW (Data Warehouse) staging tables. During my engagement on project for one large retailer, I noticed significant performance penalties due […]

29. 05. 2018.

Hints and Outlines required action when changing object name

When developing code, usually temporary created objects like tables and indexes have been created just to test some scenario and check behaviour. Very often, in case test passed reside much longer than it was planned. For that reason, at some point in time, it’s needed to change object names to deploy code to upper environments, […]

05. 02. 2018.

Number of columns in RPM Worksheet tables – impact on performance

This time I’ll explain a challenge that I had with optimization of RPM worksheet tables. Even if you have all elements of enterprise architecture tuned, there is still something you can do to speed up the Query or DML operations. Here I’ll present what impact from the physical design you can expect. All examples will […]

26. 12. 2017.

Calling PL/SQL functions from the SQL and it’s influence on query execution

In all books that I red about performance tuning in Oracle (and other major vendor) relational databases, you can find that when optimizing SQL, you remove the select part and concentrate on part starting with FROM clause to inspect what tables have been involved along with the WHERE clause. Recently I have a interesting case […]

06. 09. 2017.

AWR migration between databases

This time I’ll explain AWR statistics migration between databases. This is not a new feature (available from 10g) but many DBA/Architects doesn’t know how to use it properly or even that this feature exist. Basically, the migration itself is very simple, and Oracle has provided scripts (awrextr.sql & awrload.sql) to make migartion as simple as […]

04. 08. 2017.

Chained rows and enq TX – Row Lock Contention

A couple of days ago, I’ve been called to solve integration interface issue between SAP and ReIM (ReIM is application within the Oracle Retail Suite). The main challenge when solving such issue is to find out where you should start with your analysis and to distinguish between what is the cause of the issue and […]

19. 07. 2017.

Streams AQ: enqueue blocked on low memory while using Data Pump utility in 11.2.0.4

While helping with migration of one Retail production system, I need to export certain schemas by using Data Pump utility. As the database is pretty small (about 3TB), I’ve just executed expdp command and expected it will finish within 2 to 3 hours. When I checked in the evening, on my surprise, Data Pump job […]