Oracle to PostgreSQL Migration: Avoiding the Obstacles

When organizations look to migrate from Oracle to PostgreSQL database, they usually see the advanced features, high performance, flexible open-source licensing, data integrity and easy availability from public cloud providers. But the way to migration is not easy, and you need to know how to avoid the obstacles if you are to be successful..

Detecting indexes, tables and packages not used on DB2

DB2, from version 9.7, allows to know easily what indexes are not being used in a Database. The query is also for tables and packages.

This is a useful tool for tuning indexes and detecting problems in their use.

After version 9.7 DB2 includes a new LASTUSED field in the SYSCAT.INDEXES, SYSCAT.TABLES and SYSCAT.PACKAGES tables.

This field indicates the date of last use of indexes, tables or packages.

For example, to query unused indexes since 1/1/2019, you could use this simple query:

Search more accessed tables in DB2

 It’s relatively simple and unfamiliar tool for the novices: db2top.

Using the option “T” (tables) and sorting the list (key “z”) using column 1.

The first position will be for the most accessed table.

If there is much difference between that and the rest during an appreciable period of normal use of the database, these tables would be candidates to improve their access or optimice their access to improve the overall performance,


Query to obtain Cache Hit Ratio on IBM DB2

The cache hit ratio is one of the indicators used for tuning tasks. It Measures the percentage of hits in memory, specifically in the bufferpools (each of them).

To get the cache hit ratio for each buffer pool configured to run this query:



TOP 10 rows on DB2

In this shosrt post we will show how to obtain the N first rows from a Query on IBM DB2.

With Oracle SQL would be with ROWNUM, and with SQL Server we'd use TOP.


This is the Top 10 query syntax:

select *

from My_Table

fetch first 10 rows only



db2look – Create DDL for table or full schema

Db2look is an utility to extract the definition of database objects. It also allows some really interesting statistics to extract objects for export to other test environments / integration plans and get the same access to objects.

In this article we will see more frequent usefulness.

DDL extraction of the objects in my schema:

db2look -d MI_BBDD -a -e -x -o FICHERO_SALIDA.txt

Extraction of the DDL of the DEPT table:

db2look -d MI_BBDD -t DEPT -a -e -x -o FICHERO_SALIDA.txt


To include statistics to have to use the “-m” option.