22. 10. 2021.

When visual tool for monitoring appears to lie

A few days ago I was asked to take a look at two queries that shows up among the top queries in the Oracle SQL Developer instance viewer. I’ve extracted two statements that are relevant for this case. The select statements for both records are almost identical:   From the SELECT statement it is obvious […]

16. 02. 2021.

Postgres monitoring with Percona PMM

For those who are coming from Oracle world, the best alternative database is probably Postgres, because of many similarities between those two Db engines (data types, tablespace concept etc.).   However, one of the first thing you want to do is to grab a full control over what is going on in your database. If […]

23. 12. 2020.

PRIMARY KEY creation effect on SUPPLEMENTAL LOGGING

Recently I’ve discovered a bug that affects all versions of Oracle RDBMS from 11g up to the 19c. If you are using SUPPLEMENTAL LOGGING feature for any reason (security audit of logs, Data Guard, tables replication…) you might be affected. To follow my example you need to fulfill prerequisites to prepare database for supplemental logging. […]

24. 09. 2020.

How to setup Adobe Flash Support in Browser for Linux

Some vendors still relies on Adobe Flash for rich web contents. One such example is Oracle, where you can find that all tuning reports are generated by using Flash. Even Oracle Enterprise Manager Grid, main Oracle monitoring tool still uses Adobe Flash to generate its content. If you are on Windows, you can use Internet […]

18. 03. 2020.

String aggregation – part II

Last time I’ve suggested two ways of how to perform string concatenation. Unfortunately, both approaches have serious drawbacks that you might experience. In this post I’ll explain one approach which is not Oracle version dependent, which corrects both shortcomings of previously described methods: size of concatenated string speed of data processing Part I you can […]

17. 03. 2020.

String aggregation – part I

Very often you’ll find delimited text to be more suitable format option instead of splitting text in many rows. Typical use cases for having delimited text includes preparation of data for further analysis, reporting, importing data into the spreadsheet etc. To demonstrate the concept, I’ll use my demo table TEST with 10 million rows. And […]

21. 02. 2020.

External C procedures – how to setup and performance boost you can expect

In this post I’ll explain what you need to do to setup external C procedure call with Oracle 18c. I’ll also show for a CPU intensive task, what performance boost you might expect. For those of you who remember how difficult it was to configure LISTENER and TNSNAMES to work with C external procedures, will […]

20. 01. 2020.

Configuring environment for debugging PL/SQL Stored procedures

Main objective of this post is to list some of the typical issues I’ve found when debugging PL/SQL stored procedures, functions and packages. There are many ways of how you can debug server side code, and here is the list of the most common ways I’ve found in practice: dbms_debug_jdwp dbms_debug dbms_output database tables used […]

15. 01. 2020.

Primary Key and duplicate rows – fast troubleshooting

Recently I had a case of duplicate rows in a table with Primary Key enabled. More common case is to catch CBO (Cost Based Optimizer) to return a wrong results, mainly due to sophisticated nature of CBO engine (CBO is the most complex part of the Oracle database), the complex SQLs you issue, and the […]

14. 01. 2020.

Oracle Multiversion Read Consistency and its impact on ETL

Imagine you need to create an ETL workflow that uses the Oracle database as one of its sources or even more common situation where you need to synchronize local table with table from the remote Oracle database via dblink. The most common scenario is to apply the following steps: I have a local table for […]