17. 05. 2019.

How to change the execution plan without changing the code in Oracle 10g

Recently I had an interesting case when I’ve been asked how to change the execution plan of one complex query without changing the code. I’ve already had a lecture with similar title at 2012 in Oracle User Group Conference – more details you can find at the following link: How to change the execution plan […]

08. 05. 2019.

Processing billions of records with Python & Oracle

Suppose you want to analyze data set by using your favorite tools (Pandas/NumPy). By reading my previous article: How to efficiently load data into Python from the Oracle RDBMS , you should realize how important is to do as much of data processing at the database SQL engine layer to get out dataset suitable for […]

23. 04. 2019.

How to efficiently load data into Python from the Oracle RDBMS

Python has many different ways to fetch the data needed to do some processing. Although majority of examples you can find around are using CSV file load, fetching a data from the database is still the most common way in practice. For all tests I’ll use SALES table from the Oracle SH sample schema. 1. […]

19. 02. 2019.

Bulk collect and memory limits

We all know that for bulk collect PL/SQL operation it’s important to keep the memory consumption under control. For that reason all bulk collect operations should be combined with a LIMIT clause like in the following code fragment: Setting the limit to process only 10K records in bulk is does not impress me in a […]

11. 02. 2019.

Performance comparison: Python & cx_Oracle versus SQL*Plus & SQL*Net

In this article I want to check the truth about the slowness of Python language when it comes to retrieving data directly from Oracle database. Second goal is to show graphically impact of changing the array size on performance, which is not possible and convenient to do with SQL*Plus.   Python is widely used as […]

10. 02. 2019.

Impact of the parameter arraysize on performance

Main goal of this article is to explain impact of the parameter arraysize on database performance. First it’s important to define what array size is. The array size is the number of rows fetched by the server. I’m using Oracle’s SH demo schema, and it’s SALES table which has almost 1 million rows. In the […]

04. 01. 2019.

Multipath I/O and Network bonding

Event though Multipath I/O and NIC bonding is more related to sysadmin and storage admin tasks, it is good idea to grab some knowledge about those keywords as they play important role in achieving good performance. In the series of articles about disk speed I explained why it is good to know what values you […]

21. 12. 2018.

How to quickly check disk(s) speed limit on Linux – part 3

This is the third part of a series of articles about measuring performance of disk subsystem. In the first part you can find details of how to measure disk performance by using dd command: https://www.josip-pojatina.com/en/how-to-quickly-check-disks-speed-limits-on-linux/ while in the second part you can find similar information by using the hdparm utility: https://www.josip-pojatina.com/en/how-to-quickly-check-disks-speed-limit-on-linux-part-2/ In this blog I’ll […]

14. 12. 2018.

How to quickly check disk(s) speed limit on Linux – part 2

In the previous part of disk speed series you can see one way to test disk speed by using special options of the dd command. In this article another utility – hdparm will be described. What is common with the previous way of testing HDD disk performance is in it’s simplicity, meaning you only need […]

04. 12. 2018.

How to quickly check disk(s) speed limit on Linux

Many times I can testify that IT professionals are talking about performance without even try the most simplistic tests to find out what are the HW capabilities/limits they have. One of the first things I usually do when facing with unknown environment is to run several tests to find out how much I can get […]