Top 60 Oracle Blogs

Recent comments

January 2016

A old story from the past

My own personal hell story was back in the late 1990’s, when moving database from one server to another.  We were recycling some of the hardware (disks and memory), so it was a unload-to-tape, reload-from-tape job. The servers were in Port Hedland (a rat-infested dusty 110-degrees-plus 98% humidity hell hole… Hi to anyone in Port Hedland … ). I was not physically present – don’t you love it when IT companies think “remote login” is always the best way…

Anyway, because of the dust issues, I unloaded three copies of the database to three tapes, and then did a verification read of all them. An on-site non-techie took care of unloading/reloading tapes for me.  He chucks the disk drives and memory from the old server plus the three tapes into a truck and drive 20 km’s across town (where the new server is). Then I spend an hour on the phone trying to explain blind to him how to plug all this stuff in to the new server.

He turns it on… smoke starts billowing out of the box.

Session level parallelism

If you’ve got a stack of large I/O operations to perform, you might want to take advantage of the all of the cores on your server. However, if the scripts are already in place, you might not want to be editing them individually to carefully add parallelism. A little known command is that you can set parallelism at session level.

Determining What Management Packs Are Needed

In Enterprise Manager 12c, there was a little known functionality where you could check what management packs you needed to be licensed for to use a particular page in Enterprise Manager. I referred to it many times at conferences I was presenting at, and almost always people did not realize the functionality existed. Let’s see how this works.

To start with, I’m going to go to the Performance Home page for a particular database (accessed via the Performance menu from the Database home page). Note I’m not particularly interested in what it shows me, I’m just using this as an example of a page that requires the licensing of a management pack. Once I’m on that page, I can follow the path Setup -> Management Packs -> Packs for this Page:

Problematic SQL ? PL/SQL is your friend.

So then… I’ve written a crappy piece of SQL.

Not using binds .. banging an obsolete drum ?

We’ve all seen the mantra – “you should be using binds”.  And this is a demo that’s been rolled out for decades now, showing the performance overhead of not using them:

MobaXterm 8.6

MobaXterm 8.6 has just been released. The downloads and changelog can be found here.

For SSH and X emulation, this is the best! I keep saying it, but give it a go. You won’t regret it. :)



Video: SQL Server Databases on Microsoft Azure

I mentioned in a previous post, the whole look and feel of Microsoft Azure has been rejigged. As a result, I had to do a run through of the SQL Server DBaaS stuff to update the screen shots in and old article on the subject.

Azure : SQL Server Databases on Azure

Since I was doing that, I figured I might as well do a video for my YouTube channel.



VirtualBox 5.0.14

VirtualBox 5.0.14 has been born.

Downloads and changelog are in the usual places.

I’ve not done the installation on Linux yet, but it installed and seems to work fine on Windows 7 and Mac OS X (El Crapitan).



Converting LONG to CLOB

Some folks still are stuck with LONG columns, and are keen to move to LOB.  Since version 9, we’ve had a nice facility to do that – just with a simple alter command.

You can now simply issue “alter table (longcol CLOB)” to perform the conversion. This is a neat tool, but be aware of the space implications before attempting a conversion.

Here is a simple example to demonstrate:

PL/SQL arrays–the index datatype

You get some interesting (but perhaps not unexpected) results when playing with the speed of array functions in PL/SQL.  This is a series of tests comparing “BY PLS_INTEGER” arrays with “BY VARCHAR2” arrays.  In all the cases, their speed is pretty much blindingly fast, but the comparison between the two seems to be dependent on the type of array function being performed. 

Anyway … on to the tests