Next Tuesday at 11:20 am at Oracle headquarters there will be a panel discussion on SQL. You can participate whether you are there or not as we are collecting questions ahead of time and will video the panel to be posted later. The panel’s participants will be
We all know that comparing two VARCHAR2 fields of different lengths will be treated by Oracle as being not EQUAL:
SQL> drop table T purge; Table dropped. SQL> create table T ( x varchar2(10), y varchar2(10)); Table created. SQL> insert into T values ('abc','abc '); 1 row created. SQL> select * from T where x = y; no rows selected SQL> select * from T where y = 'abc'; no rows selected
But interestingly enough, if there are no references to tables and/or columns, that is, you are just using plain literals, VARCHAR2 is not the datatype that is in play. For example:
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.
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.
So then… I’ve written a crappy piece of SQL.
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:
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:
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
This is an update of a blog item I made nearly 15 years ago … but I think it still holds true
Is doing the OCP exams worthwhile ?
Yes, but not for the reasons you may be thinking. The OCP exams are a relatively cheap way of identifying possible weaknesses in your knowledge base on Oracle. For example, when I did the OCP, all of the database sites I had worked on did not use MTS and thus the exams revealed an area that could be “swotted up” on.
What does an OCP mean ?
In my last blog I talked about trying out Jenkins. In this blog post I want to talk about the new Jenkins plugin for Delphix.
Delphix plugin is easy to add. Just navigate to “Manage Jenkins” in the top left
Then click on “Manage Plugins”