27. 09. 2018.

Non prefixed local index and slow SQL

Recently I’ve been asked to help explain why one query is running so slow based on only SQL text and table definition that is provided. As query was pretty big (several hundreds lines of code), at the first I thought that is mission impossible, as I have no explain plan available, no running stats, no […]

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 […]

16. 08. 2018.

Exadata / Linux crash – capturing kernel dump on Linux systems

This article has been motivated from real life issue experienced on Exadata system running a few dozen of Oracle databases. I have already written about Exadata shortcoming in one of previous articles where I stressed that one of the main disadvantages of Exadata machine is non-existent virtualization technology. Oracle recognizes Oracle VM as the only […]

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, […]

27. 05. 2018.

Exadata shortcomings Part 2

Flexibility   Flexibiliy is a weak point in case of Exacloud also that I tested last year (you can found on this site). Exadata is delivered with pre installed and configured SW and 2 node cluster. It’s true that you can destroy it and customize, but that’s not the point (in that case it’s much […]

27. 05. 2018.

Exadata shortcomings Part 1

It’s very difficult to write about Exadata Appliance, the famous jewel in the Oracle offering, machine that combine HW and SW that are engineered to work together. There is no point to repeat what you can already know or find in books, web or wherever. On the other side, rarely you can find that someone […]

08. 05. 2018.

Oracle tracing mechanism and when not to use it

Quite recently I had to trace/profile an extremely intensive batch job to provide information to Oracle for a further analysis. At very first moment it was obvious that this is a wrong approach and whatever we’ll get, it cannot server as evidence of performance issue that we have, as TKProf is designed to trace single […]