Bloom filters and parallel execution

Today I want to share with you another interesting example of solving performance problem which happened in the database used for Business Intelligence purposes. Users were complaining that the performance in kind of staging database (STGDB) was much better than the production one (PRDDB), even though the dataset was exactly the same.

Continue reading “Bloom filters and parallel execution”

Advertisements

Playing with statistics modification hints

How often did you have the situation when performance problem disappeared just after refreshing object statistics? Of course it is nice to solve the problem quickly and simply, but is always better to understand what has exactly happened.

Continue reading “Playing with statistics modification hints”

Oracle Database Security For Developers

The last blog post of Jeff Smith (18.1 Features: SQL Injection Detection) about little, but nice feature of SQL Developer detecting if your PL/SQL code might be vulnerable for SQL Injection, reminded me about the presentation I’ve delivered during Oracle Tutorials at CERN in 2013.

Continue reading “Oracle Database Security For Developers”

BI jobs performance degradation after Oracle 11.2.0.4 to 12.1.0.2 migration

If you have performance problems after migrating your BI databases from 11.2.0.4 to 12.1.0.2 or any other performance issue, you should not underestimate SQL Plan Notes, which can point you to the right direction or just let you understand what exactly is going on with your queries. Please check below how SQL Plan Notes helped me to investigate problem I recently encountered.

Continue reading “BI jobs performance degradation after Oracle 11.2.0.4 to 12.1.0.2 migration”

How to find minimal set of hints leading to better execution plan?

Dealing with query performance degradation coming from suboptimal execution plans is a task every DBA knows. Thanks to very good Oracle instrumentation, we have several options to deal with the problem, both in terms of analysis, as well as introducing the correct solution. If you are able to get the proper plan for example from DBA_HIST_SQL_PLAN or from different “versions” of the same database available in various types of environments (DEV, TEST, etc.), your life should be much easier.

Continue reading “How to find minimal set of hints leading to better execution plan?”

XFS on RHEL6 for Oracle – solving issue with direct I/O

Originally posted on “Databases at CERN” blog

Recently we were refreshing our recovery system infrastructure, by moving automatic recoveries to new servers, with big bunch of disks directly connected to each of them. Everything went fine until we started to run recoveries – they were much slower than before, even though they were running on more powerful hardware. We started investigation and found some misconfigurations, but after correcting them, performance gain was still too small.

Continue reading “XFS on RHEL6 for Oracle – solving issue with direct I/O”

How to create your own Oracle database merge patch

Originally posted on “Databases at CERN” blog

A little bit scary title, isn’t it? Please keep in mind that definitely it is neither supported nor advised method to solve your problems and you should be really careful while doing it – hopefully not on production environment. But it may sometimes happen that you end up with the situation where creating your own merge patch for Oracle database could not be as crazy idea as it sounds :).

Continue reading “How to create your own Oracle database merge patch”