13. 09. 2017.

How to clone Oracle Grid/Cluster database to a new server

Goal of this exercise is to clone Oracle database that is using Grid / Clusterware components to a separate server. Although you can find some articles on the Internet, problem is they are covering how to change the host name and/or IP address in case of Oracle Restart. This article will show you much more: […]

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

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

09. 07. 2017.

RPM performance issue in push_back_error_rows procedure of rpm_future_retail_sql during the CC (conflict check)

After quite a while I was beenrequested to solve an RPM performance issue. While executing conflict check procedure in rpm_future_retail package, duration of one SQL inside the procedure push_back_error_rows takes 36 times longer than average. Here is the SQL text responsible for performance degradation, that I want to expose to be sure it’s not a […]

06. 06. 2017.

DDL Against An Object Dependent On By A Synonym Invalidates The Synonym Object

It’s always the time to learn something new. If you missed to learn something during the day, it doesn’t mean you know everything. It just means you stop learning. In this case, I believe if I compile the package, that action won’t invalidate synonyms based on that package/procedure/function, as shown in the following example: create […]

29. 05. 2017.

ORA 7445 error and plsql_optimize_level

This is the typical example when compiler during the compilation of the source code, can introduce bugs, as Oracle has to re-arrange the code and make many modifications (optimizations like inline expansion etc.) of the code to achieve better performance. With higher level of optimization, compiler modifications will make will be more intrusive. The same […]

17. 05. 2017.

To patch or not to patch, that is the question

I’ve modify words spoken by Prince Hamlet (William Shakespeare) a bit to explain one of the most common asked questions regarding the patching strategy especially in today’s complex IT environment. Probably very larger company have their specific policy how often they need to patch their IT infrastructure (for example storage/network/OS/databases/App Servers…). Parts of IT infrastructure […]

08. 05. 2017.

ReIM Consolidated documents cost resolution – performance improvement

After external contractor of the company where I’m working and Oracle Support were not able to find solution that would improve performance of the ReIM consolidated documents functionality, it’s time for me to take that challenge. Very quickly I’ve found the problematic SQL. Here I’ll provide only the important part, as the query is over […]

02. 05. 2017.

Example of how 10x technically faster code is 1000x slower in production

Recently I’ve solved this interesting issue on Oracle Retail production (code is from RPM – Retail Price Management). After upgrading Oracle Retail I found problematic part of code that is running fine in the old version of the RPM. In new version, developer has correctly changed the following part of code with much faster version […]