A question about parallel query and cardinality estimates appeared on OTN a little while ago that prompted me to write this note about helping the optimizer do the best job with the least effort. (A critical point in the correct answer to the original question is that parallel query may lead to “unexpected” dynamic sampling, which can make a huge difference to the choice of execution plans, but that’s another matter.)
The initial (more...)
The OTN Tour of Latin America (Northern Leg) is now over for another year.
Each tour comes with its own set of challenges. As the tour progresses you get increasingly more tired and less able to cope with those challenges. The journey from Guatemala to Pereira broke me. It was like my adrenal glands had burnt out and there was nothing left in the tank. When I get into that state I just want to be quiet (more...)
One of the guys in the team seems to have discovered a neat trick with PuTTY that i certainly didn't know that has proven quite useful.
Normally when you ssh to a server the window title defaults to the host name you ssh'd - unless you set an explicit window name in the putty settings - this works fine and if you save all your config it all works out nicely.
However in our setup (more...)
I ran in to a small issue while applying the July 2016 quarterly patch to a couple of Exadata racks last week. The systems were running GI 220.127.116.11, previously with the January 2016 PSU. The patches applied successfully, and we were beginning the process of running the post-patch scripts on the databases in the cluster. This process involves manually starting the database in upgrade mode, and we saw a message in SQL*Plus that the (more...)
Ever get tired of typing the same command over and over again in Oracle GoldenGate GGSCI? Well, Oracle has provided a history recall function into GGSCI, I talked about his in an earlier post. This post on history recall can be found here.
In this post, lets take the command recall and how these commands can be edited. In Oracle GoldenGate 12c, Oracle has provided an GGSCI command called “FC”. The “FC” command is used (more...)
Having done my mini-series on Nested Loop join logical I/O optimizations a while ago I unfortunately never managed to publish anything regarding the Nested Loop join physical I/O
optimizations, which are certainly much more relevant to real-life performance.Therefore the main purpose of this blog post is to point you to Nikolay Savvinov's (whose blog I can recommend in general) great mini-series covering various aspects of these optimizations:Part 1Part 2Part 3Summary (more...)
Some Enterprise Manager customers, complain about the high volume of data stored in OMS repository. Enterprise Manager agents collect metric data of targets they monitor, and upload these “raw” metric data to OMS. Depending on your metric collection periods and number of targets, the volume required to keep these data can be very huge. Enterprise Manager has already a mechanism to minimize the size of the Management Repository. Once a day, the previous day’s metric (more...)
The day started quite normally. I met Debra at about 08:00 for breakfast. We had a chat, then said our goodbyes, as she was leaving a few hours before me.
The hotel kindly allowed me to check out at 14:00, so I went to the gym, then went back to my room to chill until it was time to leave. Whilst in my room I started to feel a little unwell. I had visions of (more...)
Today I finally finished the Mathematics for Computer Science class that I have worked on since December. For the last year or two I have wanted to do some general Computer Science study in my free time that is not directly related to my work. I documented a lot of this journey in an earlier blog post.
The math class is on MIT’s OpenCourseWare (OCW) web site. It was an undergraduate semester class and I spent about (more...)
This morning I was asked a question about the job opportunities for a PL/SQL developer these days. I’m talking about someone with good SQL and PL/SQL skills, but limited, or no, knowledge of other development languages.
I think most people know I’m a big fan of PL/SQL. If you have good SQL skills and you know PL/SQL well, you can do pretty much anything with an Oracle database, including all types of web service and web development. Throw in (more...)
If you are familiar with using Oracle GoldenGate, you know that on the source side of the equation you have to enable supplemental logging and sometimes force logging on the database. I traditionally do both just to make sure that I capture as much as I can into the redo stream from the transactions on the database. For Oracle GoldenGate purposes, this is not the only thing you need to turn on to ensure all (more...)
Day 2 of the ASUOC event started with a talk on licensing in Spanish. I couldn’t understand the content, but the audience seemed interested and many people queued to get a business card from the speaker at the end.
Next up was my session called “Its raining data! Oracle databases in the cloud”. There were no changes to this session, so compared to yesterday I felt a little more relaxed at the start. 🙂
The first half of this year was a little quiet for me on the presenting front. I was concentrating on writing and also on organising events, as opposed to going to them, so most of my trips were for personal reasons (that means “holidays”…). I presented at the Ireland conference and a few UK user group events but that was it – quite a few European events this spring fell on dates I was not (more...)
Creating your own test VM environment with RAC is a fun exercise to do, however after you have rebuild your environment a couple of times this will get a very tiresome exercise and you want to start to automate your deployments. People have already written several blogposts about the GI and RDBMS orchestrations and the several tools that are available for this. Within the Oracle community Ansible seems to be a very popular choice for (more...)
I saw this on an AskTom question today answered by my colleague Chris. Check out this simple example
SQL> create table T (
2 x int default 1,
3 y int default 1
4 ,z int);
It looks like I’ve assigned a default of “1” to both X and Y. But lets now dump out the default definition from the dictionary.
SQL> set serverout on
2 longcol varchar2(200);
A simple command like 'DROP TABLESPACE TEMP;' in a regular database can become excessively slow. The reason behind this is quite simple, even if the users defaults to a different temporary tablespace there could still be sessions holding temporary segments there. It's just a matter of finding them and killing them to free the blocks on the temporary segments and you're good to go.
The operation of dropping the temporary tablespace looks like this on (more...)
After not having spotted ORA-00600 for a while a new one showed up.
ORA-00600: internal error code, arguments: , , , , , , , , , , , 
This happened out of the blue after a switchover back from a Datagurad environment. Basically this is due to a bug, the patch is already included in 18.104.22.168.0 and 22.214.171.124.0 patch sets, but it is not enabled (more...)