What, Me Worry?

“What, me worry?” – Alfred E. Neuman

It seems like we have some nervousness settling into the U.S. economy.  The Dow Jones Industrial Average is down a few percentage points over the past few months.  Facebook, Apple and Google shares (three-fourths of the FANG indicator for the tech market) are all taking a bit of a beating.  We’re watching the process of Treasury Yields inverting, indicating concerns about the long-term debt market.  Folks (more...)

Case Study

A recent thread on the ODC database forum highlighted a case where the optimizer was estimating 83,000 for a particular index full scan when the SQL Monitor output for the operation showed that it was returning 11,000,000 rows.

Apart from the minor detail that the OP didn’t specifically ask a question, the information supplied was pretty good. The OP had given us a list of bind variables, with values, and the SQL statement, followed by (more...)

Polymorphic Table Functions – Part 2

In my previous post I wrote about a possible use-case for Polymorphic Table Functions. I also wrote that I had some ideas to implement extra functionality to make the function more generic.
After attending DOAG Konferentz und ausstellung 2018 and UKOUG Tech18 I finally came around to publishing my new version.
Lets start off with a table to hold my data, I chose to use the NATO phonetic alphabet for this:

create table t_alphabet
(thecount  (more...)

OBUG Tech Days Belgium 2019 – Antwerp – 7/8-FEB-2019

Agenda: https://www.techdaysbelgium.be/?page_id=507

Dates: February 7 and 8, 2019

Location: http://cinemacartoons.be in Antwerp, Belgium

More information soon.

For people from the netherlands: this is easy reachable by car or by train! This is a chance to attend a conference and meet up with a lot of well-known speakers in the Oracle database area without too extensive travelling.

Python & Oracle 1

While Python is an interpreted language, Python is a very popular programming language. You may ask yourself why it is so popular? The consensus answers to why it’s so popular points to several factors. For example, Python is a robust high-level programming language that lets you:

  • Get complex things done quickly
  • Automate system and data integration tasks
  • Solve complex analytical problems

You find Python developers throughout the enterprise. Development, release engineering, IT operations, and support (more...)

Docker with Oracle database: install patches automatically

Recently I had to install the patch for fixing cross-platform PDB transport bug onto the docker images with Oracle, so these are easy way how to do it:

1. create directory “patches” and create “install_patches.sh”:

#!/bin/bash

unzip  -u ./*.zip
CURDIR=`pwd`

for D in *; do
    if [ -d "${D}" ]; then
        echo =================================================
        echo " *** Processing patch # ${D}... "   # your processing here
        cd "${D}"
        opatch apply -silent
    fi
    cd  (more...)

UKOUG Tech18 : Day 3

The first session of the day for me was Alex Nuijten with “and from the chaos comes the perfect APEX application”. This session was focused on the organisation and structure of APEX applications. You could describe it as #SmartDB or #HardShell I guess. The emphasis was on a functional API layer, with APEX used as a skin over that API layer. I share this opinion, but Alex takes it further than me, and in a (more...)

UKOUG Tech18 : Day 2

Day 2 started at 07:00. I hadn’t slept that great, so when the alarm went off I was thinking it would have been nice to stay in bed a little longer…

I got to the conference venue at about 08:00 and went straight to the “Women in IT – What has Changed?” session. Debra Lilley introduced the session and the speakers, then it was on to Daya Haines Haddock and Amy Simpson-Grange telling their (more...)

Lab Correction

Anyone using the August 2018 Fedora image should note that I neglected to put the right transaction_upload2.csv file in the /u01/app/oracle/upload directory. You can fix that by navigating to the Lab 12 Instructions web page and click on the zip file link to download the correct file. You will see the following dialog asking whether you want to open the file with the Ark utility, click OK to continue:

After clicking OK to open (more...)

Oracle VM Server x86: How to get a redundant network for the heartbeat (part 2)

A while ago i played around with Oracle VM Manager

UKOUG Conference 2018

With the start of December comes the UK Oracle User Group conference, or to be more precise the Independent UKOUG.  This year the conference is back in Blackpool, a slightly smaller venue than the ICC in Birmingham, but in many respects that made the event feel more vibrant and busy.

The user group also announced some of the changes it is making going forwards reflecting the changing needs of its members – SIGs being (more...)

UKOUG Tech18 : Day 1

Day 1 started at 05:00. Normally I start trips with a 30 minute taxi ride to the airport, leaving about 2.5 hours before the flight. Today I left the house 30 minutes before my train was due to depart. Not needing that 2 hour buffer makes a big difference.

I had upgraded to first class, a whopping £10 extra, to get a set with a table and wifi. The wifi was a little slow (more...)

Row Migration

There’s a little detail of row migration that’s been bugging me for a long time – and I’ve finally found a comment on MoS explaining why it happens. Before saying anything, though, else I’m going to give you a little script (that I’ve run on 12.2.0.1 with an 8KB block size in a tablespace using ASSM and system allocated extents) to demonstrate the anomaly.


rem
rem     Script:         migration_itl.sql
rem     Author:         Jonathan  (more...)

ITNEXT NEXT100 CIO – 2018

Hey All, Faced some really proud moments last week. I was one of the only 100 winners of NEXT100 CIO 2018 award. NEXT100 is an annual awards program instituted by IT Next magazine and the 9.9 Group that aims to identify 100 experienced IT managers who have the skills, talent and spirit to become CIOs. The … Continue reading "ITNEXT NEXT100 CIO – 2018"

Index rebuild bug

I tweeted a reference yesterday to a 9 year old article about index rebuilds, and this led me on to look for an item that I thought I’d written on a related topic. I hadn’t written it (so there’s another item on my todo list) but I did discover a draft I’d written a few years ago about an unpleasant side effect relating to rebuilding subpartitions of local indexes on composite partitoned tables. It’s probably (more...)

UKOUG Tech18 : See you there!

Next week is UKOUG Tech 18. It’s going to be an unusual event for me for a couple of reasons.

First up, I’m going to be in Liverpool from Mon-Wed. I can’t go on Sunday as it’s nephew #1’s birthday, but this is the first time I will be at the event for this long. Depending on who else from the company goes, I might have to work (from the hotel) on one of the (more...)

Counting Rows

Here’s another little utility I use from time to time (usually for small tables) to check how many rows there are in each block of the table, and which blocks are used. It doesn’t do anything clever, just call routines in the dbms_rowid package for each rowid in the table:


rem
rem     Rowid_count.sql
rem     Generic code to count rows per block in a table
rem     Ordered by file and block
rem

define m_table =  (more...)

Enhanced “validate” commands in Oracle’s Data Guard Broker 18c

If you are using an Oracle Database Enterprise Edition chances are that there is at least one environment in your estate making use of Data Guard. And if you are using Data Guard, why not use the broker? I have been using Data Guard broker for a long time now, and it has definitely improved a lot over the first releases, back in the day. I like it so much these days that I feel (more...)

Dump logfile

Here’s a little procedure I’ve been using since Oracle 8i to dump the contents of the current log file – I’ve mentioned it several times in the past but never published it, so I’ll be checking for references to it and linking to it.

The code hasn’t changed in a long time, although I did add a query to get the full tracefile name from v$process when that became available. There’s also an (optional) called (more...)

Shrink Space

I have never been keen on the option to “shrink space” for a table because of the negative impact it can have on performance.

I don’t seem to have written about it in the blog but I think there’s something in one of my books pointing out that the command moves data from the “end” of the table (high extent ids) to the “start” of the table (low extent ids) by scanning the table backwards (more...)